import { StateBeanModel, StateBeanOptions, StatePropsMap } from './types';
import { StateBeanResponse } from './services';
import { StatePropertyTypes } from '../types';
import { IKosModelLogger, KosContextLogger, KosCreationContext } from '../../../core';

export declare const MODEL_TYPE = "state-bean-model";
export declare class StateBeanModelImpl<T extends Record<string, StatePropertyTypes> = any> implements StateBeanModel<T>, IKosModelLogger {
    id: string;
    path: string;
    props: StatePropsMap<T>;
    logger: KosContextLogger;
    constructor(modelId: string, options: StateBeanOptions, context: KosCreationContext);
    updateModel(options: StateBeanOptions): void;
    /**
     * @category Subscription
     * Updates the Config Bean model when a `/kos/config//update` event
     * is recieved from the server.
     *
     *
     * @param data - the raw callback
     * @param data.body - the Config Bean that was updated.
     * @see ConfigBeanResponse
     */
    handleConfigBeanUpdated(stateBean: StateBeanResponse): void;
    init(): Promise<void>;
    updateProps(props: Record<string, StatePropertyTypes>): void;
    load(): Promise<void>;
}
//# sourceMappingURL=state-bean-model.d.ts.map