import type { IFlags, IFlagsmithFeature, IFlagsmithTrait, ITraits, LoadingState, IFlagsmith, IInitConfig } from '@flagsmith/flagsmith/types'; import type { App, ComputedRef, Ref } from 'vue'; type Flag = string | Record; type FKey = F extends string ? F : keyof F; type UseFlagsReturn = [F] extends [string] ? { [K in F]: ComputedRef; } : { [K in keyof F]: ComputedRef | undefined>; }; type Options = IInitConfig, T>; export interface FlagsmithHelper { flags: Ref> | undefined>; traits: Ref | undefined>; loadingState: Ref; flagsmithInstance: IFlagsmith; } export declare const useFlagsmith: (options: Options, flagsmithInstance?: IFlagsmith, app?: App) => FlagsmithHelper; type ComputedObject = { [K in Key]: ComputedRef; }; export declare const useFlags: (flagsToUse: FKey[], flagsmithHelper?: FlagsmithHelper) => UseFlagsReturn; export declare const useTraits: (traitsToUse: T[], flagsmithHelper?: FlagsmithHelper) => ComputedObject; export declare const useFlagsmithLoading: (flagsmithHelper?: FlagsmithHelper) => { [K in keyof LoadingState]: ComputedRef; }; export declare const useFlagsmithInstance: (flagsmithHelper?: FlagsmithHelper) => IFlagsmith; declare const _default: (app: App, options: Options) => void; export default _default;