export interface ApplicationStateValue {
    selection: string[];
}
export declare type ApplicationStateValueChangeListener = (key: string, value: any) => void;
export interface ApplicationState<State extends ApplicationStateValue = ApplicationStateValue> {
    getState(): State;
    setState<K extends keyof State>(update: Pick<State, K>): void;
    setValue<K extends keyof State>(key: K, value: State[K]): void;
    getValue<K extends keyof State>(key: K): State[K];
    onValueChange(cb: ApplicationStateValueChangeListener): () => void;
}
