'use client';

import { default as React } from 'react';
import { Organization, OrganizationSettings } from '@frank-auth/client';
import { ComponentOverrides, OrganizationConfig } from '../config';
import { AuthFeatures, ConfigContextValue, ConfigProviderProps } from './types';
declare const ConfigContext: React.Context<ConfigContextValue | null>;
export declare function ConfigProvider({ children, config: initialConfig, onConfigChange, }: ConfigProviderProps): import("react/jsx-runtime").JSX.Element;
export declare function useConfig(): ConfigContextValue;
export declare function useFeatures(): {
    hasFeature: (feature: keyof AuthFeatures) => boolean;
    requireFeature: (feature: keyof AuthFeatures) => void;
    signUp: boolean;
    signIn: boolean;
    passwordReset: boolean;
    mfa: boolean;
    passkeys: boolean;
    oauth: boolean;
    magicLink: boolean;
    sso: boolean;
    organizationManagement: boolean;
    userProfile: boolean;
    sessionManagement: boolean;
};
export declare function useOrganizationConfig(): {
    organization: OrganizationConfig | undefined;
    settings: OrganizationSettings | undefined;
    setOrganization: (organization: Organization) => void;
    applyBranding: (organization: Organization) => void;
    hasOrganization: boolean;
    isMultiTenant: boolean;
};
export declare function useComponentOverrides(): {
    components: ComponentOverrides;
    getComponent: <T extends keyof ComponentOverrides>(componentName: T, defaultComponent: any) => any;
    hasOverride: (componentName: keyof ComponentOverrides) => boolean;
};
export declare function withConfig<T extends object>(Component: React.ComponentType<T>): {
    (props: T): import("react/jsx-runtime").JSX.Element;
    displayName: string;
};
export { ConfigContext };
export type { ConfigContextValue };
//# sourceMappingURL=config-provider.d.ts.map