import { ReactChild } from '../../types/common';
interface FeatureProviderProps {
    children: ReactChild | ReactChild[];
    featureGateCustomFields: FeatureGateCustomFields;
    zeniFeatureProviderConfig: ZeniFeatureProviderConfig;
}
export interface ZeniFeatureProviderConfig {
    currentFeatureEnv: "production" | "staging" | "development";
    featureClientSecret: string;
    providerEndPoint: string;
}
export interface FeatureGateCustomFields {
    companyId: string | null;
    connectedAccountProvider?: string;
    userEmail?: string;
    userId?: string;
}
export interface FeatureGateResult {
    isFeatureEnabled: boolean;
    isFeatureGateLoading: boolean;
}
export interface DynamicConfigResult {
    configValue: Record<string, unknown>;
    isDynamicConfigLoading: boolean;
}
export declare const toZeniFeatureFlag: (v: string) => import('./FeatureGateNameConstants').FeatureGatesNamesCockpit | import('./FeatureGateNameConstants').FeatureGatesNamesWebApp;
export type ZeniFeatureFlag = ReturnType<typeof toZeniFeatureFlag>;
export declare const toZeniDynamicConfig: (v: string) => import('./DynamicConfigNameConstants').DynamicConfigNamesCockpit | import('./DynamicConfigNameConstants').DynamicConfigNamesWebApp | import("./DynamicConfigNameConstants").DynamicConfigNamesShared.sessionAutoLogoutConfig;
export type ZeniDynamicConfig = ReturnType<typeof toZeniDynamicConfig>;
export declare const useZeniFeatureGate: (featureFlag: ZeniFeatureFlag) => FeatureGateResult;
export declare const useZeniDynamicConfig: (dynamicConfigName: ZeniDynamicConfig) => DynamicConfigResult;
declare const ZeniFeatureProvider: ({ featureGateCustomFields, zeniFeatureProviderConfig, children, }: FeatureProviderProps) => import("react/jsx-runtime").JSX.Element;
export default ZeniFeatureProvider;
