116 lines
No EOL
4.4 KiB
TypeScript
116 lines
No EOL
4.4 KiB
TypeScript
/**
|
|
* @module botbuilder
|
|
*/
|
|
/**
|
|
* Copyright (c) Microsoft Corporation. All rights reserved.
|
|
* Licensed under the MIT License.
|
|
*/
|
|
import { BotState } from './botState';
|
|
import { TurnContext } from './turnContext';
|
|
/**
|
|
* Defines methods for accessing a state property created in a
|
|
* [BotState](xref:botbuilder-core.BotState) object.
|
|
*
|
|
* @template T The type of the state property to access. Default type is `any`.
|
|
* @remarks
|
|
* To create a state property in a state management objet, use the
|
|
* [createProperty\<T>](xref:botbuilder-core.BotState.createProperty) method.
|
|
*/
|
|
export interface StatePropertyAccessor<T = any> {
|
|
/**
|
|
* Deletes the persisted property from its backing storage object.
|
|
*
|
|
* @remarks
|
|
* The properties backing storage object SHOULD be loaded into memory on first access.
|
|
*
|
|
* ```JavaScript
|
|
* await myProperty.delete(context);
|
|
* ```
|
|
* @param context Context for the current turn of conversation with the user.
|
|
*/
|
|
delete(context: TurnContext): Promise<void>;
|
|
/**
|
|
* Reads a persisted property from its backing storage object.
|
|
*
|
|
* @remarks
|
|
* The properties backing storage object SHOULD be loaded into memory on first access.
|
|
*
|
|
* If the property does not currently exist on the storage object and a `defaultValue` has been
|
|
* specified, a clone of the `defaultValue` SHOULD be copied to the storage object. If a
|
|
* `defaultValue` has not been specified then a value of `undefined` SHOULD be returned.
|
|
*
|
|
* ```JavaScript
|
|
* const value = await myProperty.get(context, { count: 0 });
|
|
* ```
|
|
* @param context Context for the current turn of conversation with the user.
|
|
*/
|
|
get(context: TurnContext): Promise<T | undefined>;
|
|
/**
|
|
* Reads a persisted property from its backing storage object.
|
|
*
|
|
* @param context Context for the current turn of conversation with the user.
|
|
* @param defaultValue (Optional) default value to copy to the backing storage object if the property isn't found.
|
|
*/
|
|
get(context: TurnContext, defaultValue: T): Promise<T>;
|
|
/**
|
|
* Assigns a new value to the properties backing storage object.
|
|
*
|
|
* @remarks
|
|
* The properties backing storage object SHOULD be loaded into memory on first access.
|
|
*
|
|
* Depending on the state systems implementation, an additional step may be required to
|
|
* persist the actual changes to disk.
|
|
*
|
|
* ```JavaScript
|
|
* await myProperty.set(context, value);
|
|
* ```
|
|
* @param context Context for the current turn of conversation with the user.
|
|
* @param value Value to assign.
|
|
*/
|
|
set(context: TurnContext, value: T): Promise<void>;
|
|
}
|
|
/**
|
|
* A `BotState` specific implementation of the `StatePropertyAccessor` interface.
|
|
*
|
|
* @remarks
|
|
* Properties can be defined for a given `BotState` instance using `createProperty()`.
|
|
*
|
|
* ```JavaScript
|
|
* const dialogStateProperty = ConversationState.createProperty('dialogState');
|
|
* const dialogs = new DialogSet(dialogStateProperty);
|
|
* ```
|
|
* @param T (Optional) type of property being persisted. Defaults to `any` type.
|
|
*/
|
|
export declare class BotStatePropertyAccessor<T = any> implements StatePropertyAccessor<T> {
|
|
protected readonly state: BotState;
|
|
readonly name: string;
|
|
/**
|
|
* Creates a new BotStatePropertyAccessor instance.
|
|
*
|
|
* @param state Parent BotState instance.
|
|
* @param name Unique name of the property for the parent BotState.
|
|
*/
|
|
constructor(state: BotState, name: string);
|
|
/**
|
|
* Deletes the persisted property from its backing storage object.
|
|
*
|
|
* @param context [TurnContext](xref:botbuilder-core.TurnContext) object for this turn.
|
|
*/
|
|
delete(context: TurnContext): Promise<void>;
|
|
/**
|
|
* Reads a persisted property from its backing storage object.
|
|
*
|
|
* @param context [TurnContext](xref:botbuilder-core.TurnContext) object for this turn.
|
|
* @returns A JSON representation of the cached state.
|
|
*/
|
|
get(context: TurnContext): Promise<T | undefined>;
|
|
get(context: TurnContext, defaultValue: T): Promise<T>;
|
|
/**
|
|
* Assigns a new value to the properties backing storage object.
|
|
*
|
|
* @param context [TurnContext](xref:botbuilder-core.TurnContext) object for this turn.
|
|
* @param value Value to set on the property.
|
|
*/
|
|
set(context: TurnContext, value: T): Promise<void>;
|
|
}
|
|
//# sourceMappingURL=botStatePropertyAccessor.d.ts.map
|