import { type HitAbstract } from '../hit/HitAbstract';
import { primitive, IHit, IFSFlagMetadata } from '../types';
import { VisitorAbstract } from './VisitorAbstract';
import { IFSFlag } from '../flag/IFSFlag';
import { GetFlagMetadataParam, GetFlagValueParam, VisitorExposedParam } from '../type.local';
import { IFSFlagCollection } from '../flag/IFSFlagCollection';
export declare class VisitorDelegate extends VisitorAbstract {
    updateContext(key: string, value: primitive): void;
    updateContext(context: Record<string, primitive>): void;
    clearContext(): void;
    getFlag(key: string): IFSFlag;
    getFlags(): IFSFlagCollection;
    sendHit(hit: HitAbstract): Promise<void>;
    sendHit(hit: IHit): Promise<void>;
    sendHits(hits: HitAbstract[]): Promise<void>;
    sendHits(hits: IHit[]): Promise<void>;
    authenticate(visitorId: string): void;
    unauthenticate(): void;
    fetchFlags(): Promise<void>;
    visitorExposed(param: VisitorExposedParam): Promise<void>;
    getFlagValue<T>(param: GetFlagValueParam<T>): T extends null ? unknown : T;
    getFlagMetadata(param: GetFlagMetadataParam): IFSFlagMetadata;
}
