export type WidgetConfig<T> = {
    [key: string]: T;
} & {
    id?: string;
    initial?: string;
};
export declare class State<T> {
    private config;
    readonly ctx: any;
    readonly INITIAL_STATE: any;
    private _currentStateName;
    state: T;
    private _cache;
    changedHandler: (newValues: any) => void;
    id: string;
    constructor(config: WidgetConfig<T>, ctx: any);
    setState(stateName: string, resetState?: boolean): any;
    getStateValues(): T;
    private createNewStateFromConfig;
}
