declare const makeSlotClass: () => {
    new <TValue>(): {
        readonly id: string;
        hasValue(): boolean;
        getValue(): TValue | undefined;
        withValue<TResult, TArgs extends any[], TThis = any>(value: TValue, callback: (this: TThis, ...args: TArgs) => TResult, args?: TArgs | undefined, thisArg?: TThis | undefined): TResult;
    };
    bind<TArgs_1 extends any[], TResult_2>(callback: (...args: TArgs_1) => TResult_2): (...args: TArgs_1) => TResult_2;
    noContext<TResult_3, TArgs_2 extends any[], TThis_1 = any>(callback: (this: TThis_1, ...args: TArgs_2) => TResult_3, args?: TArgs_2 | undefined, thisArg?: TThis_1 | undefined): TResult_3;
};
export declare const Slot: ReturnType<typeof makeSlotClass>;
export {};
