import { default as z } from 'zod';
import { aether } from '../../aether/aether';
import { core } from '../core';
/** State schema for the flux provider (currently empty) */
export declare const providerStateZ: z.ZodObject<{}, z.core.$strip>;
/** Type representing the provider's state */
export type ProviderState = z.input<typeof providerStateZ>;
/**
 * Value stored in the Aether context for flux components.
 */
export type ContextValue = core.Client<core.Store>;
/** Type identifier for the flux provider component */
export declare const PROVIDER_TYPE = "flux.Provider";
/**
 * Hook to access the flux store from the Aether context.
 *
 * @template ScopedStore - The type of the store
 * @param ctx - The Aether context
 * @returns The store instance from the context
 */
export declare const useStore: <ScopedStore extends core.Store>(ctx: aether.Context, scope: string) => ScopedStore;
export type ProviderConfig<ScopedStore extends core.Store = core.Store> = {
    client: core.Client;
} | {
    storeConfig: core.StoreConfig<ScopedStore>;
};
/**
 * Creates an Aether component registry with the flux provider.
 *
 * @template ScopedStore - The type of the store
 * @param storeConfig - Configuration for the store and its listeners
 * @returns An Aether component registry containing the provider
 */
export declare const createRegistry: <ScopedStore extends core.Store>(cfg: ProviderConfig<ScopedStore>) => aether.ComponentRegistry;
//# sourceMappingURL=provider.d.ts.map