import { ISplitState, IStatus } from './types'; export declare const getStateSlice: (sliceName: string) => (state: any) => any; export declare const defaultGetSplitState: (state: any) => any; /** * This function extracts a treatment evaluation from the Split state. It returns the treatment string value. * If a treatment is not found, it returns the default value, which is `'control'` if not specified. * A treatment is not found if an invalid Split state is passed or if a `getTreatments` action has not been dispatched for the provided feature flag name and key. * * @param splitState - The Split piece of state. * @param featureFlagName - The feature flag name. * @param key - The user key. * @param defaultValue - The default value to return if the treatment is not found. */ export declare function selectTreatmentValue(splitState: ISplitState, featureFlagName: string, key?: SplitIO.SplitKey, defaultValue?: string): string; /** * This function extracts a treatment evaluation from the Split state. It returns a treatment object containing its value and configuration. * If a treatment is not found, it returns the default value, which is `{ treatment: 'control', configuration: null }` if not specified. * A treatment is not found if an invalid Split state is passed or if a `getTreatments` action has not been dispatched for the provided feature flag name and key. * * @param splitState - The Split piece of state. * @param featureFlagName - The feature flag name. * @param key - The user key. * @param defaultValue - The default value to return if the treatment is not found. */ export declare function selectTreatmentWithConfig(splitState: ISplitState, featureFlagName: string, key?: SplitIO.SplitKey, defaultValue?: SplitIO.TreatmentWithConfig): SplitIO.TreatmentWithConfig; /** * This function extracts a treatment evaluation from the Split state. It returns an object that contains the treatment string value and the status properties of the client: `isReady`, `isReadyFromCache`, `hasTimedout`, and `isDestroyed`. * If a treatment is not found, it returns the default value, which is `'control'` if not specified. * A treatment is not found if an invalid Split state is passed or if a `getTreatments` action has not been dispatched for the provided feature flag name and key. * * @param splitState - The Split piece of state. * @param featureFlagName - The feature flag name. * @param key - The user key. * @param defaultValue - The default value to return if the treatment is not found. */ export declare function selectTreatmentAndStatus(splitState: ISplitState, featureFlagName: string, key?: SplitIO.SplitKey, defaultValue?: string): { treatment: string; } & IStatus; /** * This function extracts a treatment evaluation from the Split state. It returns an object that contains the treatment object and the status properties of the client: `isReady`, `isReadyFromCache`, `hasTimedout`, and `isDestroyed`. * If a treatment is not found, it returns the default value as treatment, which is `{ treatment: 'control', configuration: null }` if not specified. * A treatment is not found if an invalid Split state is passed or if a `getTreatments` action has not been dispatched for the provided feature flag name and key. * * @param splitState - The Split piece of state. * @param featureFlagName - The feature flag name. * @param key - The user key. * @param defaultValue - The default value to return if the treatment is not found. */ export declare function selectTreatmentWithConfigAndStatus(splitState: ISplitState, featureFlagName: string, key?: SplitIO.SplitKey, defaultValue?: SplitIO.TreatmentWithConfig): { treatment: SplitIO.TreatmentWithConfig; } & IStatus; /** * Extracts an object with the status properties of the SDK client or manager from the Split state. * * @param splitState - The Split piece of state. * @param key - To use only on client-side. Ignored in server-side. If a key is provided and a client associated to that key has been used, the status of that client is returned. * If no key is provided, the status of the main client and manager is returned (the main client shares the status with the manager). * * @returns The status of the SDK client or manager. * * @see {@link https://developer.harness.io/docs/feature-management-experimentation/sdks-and-infrastructure/client-side-sdks/redux-sdk/#subscribe-to-events} */ export declare function selectStatus(splitState: ISplitState, key?: SplitIO.SplitKey): IStatus;