import { FeatureListener, FeatureStateHolder } from './feature_state';
import { FeatureState, FeatureValueType } from './models';
import { ClientContext } from './client_context';
import { InternalFeatureRepository } from './internal_feature_repository';
export declare class FeatureStateBaseHolder implements FeatureStateHolder {
    protected internalFeatureState: FeatureState;
    protected _key: string;
    protected listeners: Array<FeatureListener>;
    protected _repo: InternalFeatureRepository;
    protected _ctx: ClientContext;
    protected parentHolder: FeatureStateBaseHolder;
    constructor(repository: InternalFeatureRepository, key: string, existingHolder?: FeatureStateBaseHolder);
    withContext(param: ClientContext): FeatureStateHolder;
    isEnabled(): boolean;
    addListener(listener: FeatureListener): void;
    getBoolean(): boolean | undefined;
    getFlag(): boolean | undefined;
    getKey(): string | undefined;
    getNumber(): number | undefined;
    getRawJson(): string | undefined;
    getString(): string | undefined;
    isSet(): boolean;
    getFeatureState(): FeatureState;
    setFeatureState(fs: FeatureState): boolean;
    copy(): FeatureStateHolder;
    analyticsCopy(): FeatureStateBaseHolder;
    getType(): FeatureValueType | undefined;
    getVersion(): number | undefined;
    isLocked(): boolean;
    triggerListeners(feature: FeatureStateHolder): void;
    protected notifyListeners(feature?: FeatureStateHolder): Promise<void>;
    private _copy;
    private featureState;
    private _getValue;
    private _castType;
}
