import React, { FC } from 'react'; import { IFlagsmith, IFlagsmithTrait, IFlagsmithFeature, IState, LoadingState } from './types'; export * from './types'; export declare const FlagsmithContext: React.Context; export declare type FlagsmithContextType = { flagsmith: IFlagsmith; options?: Parameters['init']>[0]; serverState?: IState; children: React.ReactNode; }; type UseFlagsReturn< F extends string | Record, T extends string > = [F] extends [string] ? { [K in F]: IFlagsmithFeature; } & { [K in T]: IFlagsmithTrait; } : { [K in keyof F]: IFlagsmithFeature; } & { [K in T]: IFlagsmithTrait; }; export declare const FlagsmithProvider: FC; export declare function useFlags< F extends string | Record, T extends string = string >(_flags: readonly (F | keyof F)[], _traits?: readonly T[]): UseFlagsReturn; export declare const useFlagsmith: , T extends string = string>() => IFlagsmith; export declare const useFlagsmithLoading: () => LoadingState | undefined;