/**
 * @module botbuilder-m365
 */
/**
 * Copyright (c) Microsoft Corporation. All rights reserved.
 * Licensed under the MIT License.
 */
import { TurnContext, Storage } from 'botbuilder';
export interface TurnState {
    [key: string]: TurnStateEntry;
}
export interface TurnStateManager<TState extends TurnState> {
    loadState(storage: Storage | undefined, context: TurnContext): Promise<TState>;
    saveState(storage: Storage | undefined, context: TurnContext, state: TState): Promise<void>;
}
export declare class TurnStateEntry<TValue extends Record<string, any> = Record<string, any>> {
    private _value;
    private _storageKey?;
    private _deleted;
    private _hash;
    constructor(value?: TValue, storageKey?: string);
    get hasChanged(): boolean;
    get isDeleted(): boolean;
    get value(): TValue;
    get storageKey(): string | undefined;
    delete(): void;
    replace(state?: TValue): void;
}
//# sourceMappingURL=TurnState.d.ts.map