import type { Component } from 'solid-js';
export declare function capturedProvider<T extends any[], R>(callback: (...args: T) => R): (...args: T) => R;
export declare function providerScope<T>(callback: () => T): T;
export interface Provider<T> {
    id: number;
    defaultValue: T;
}
export declare function createProvider<T>(defaultValue: T): Provider<T>;
export declare function provide<T>(context: Provider<T>, value: T): void;
export declare function inject<T>(context: Provider<T>): T;
export declare function withProvider<T extends Record<string, any>>(Comp: Component<T>): Component<T>;
//# sourceMappingURL=provider.d.ts.map