/**
 * Copyright (c) Microsoft Corporation. All rights reserved.
 * Licensed under the MIT License.
 */
import { MemoryValue, Memory } from './Memory';
import { EntityBase } from './Entity';
export interface FilledEntity {
    entityId: string | null;
    values: MemoryValue[];
}
export declare const filledEntityValueAsString: (fe: FilledEntity) => string;
export declare const memoryValuesAsString: (memories: MemoryValue[]) => string;
export declare const getEntityDisplayValueMap: (filledEntityMap: FilledEntityMap) => Map<string, string>;
export declare class FilledEntityMap {
    map: {
        [key: string]: FilledEntity;
    };
    constructor(init?: Partial<FilledEntityMap>);
    static FromFilledEntities(filledEntities: FilledEntity[], entities: EntityBase[]): FilledEntityMap;
    EntityMapToIdMap(): FilledEntityMap;
    UpdateFilledEntities(filledEntities: FilledEntity[], entities: EntityBase[]): void;
    ToMemory(): Memory[];
    ValueAsList(entityName: string): string[];
    ValueAsString(entityName: string): string | null;
    ValueAsNumber(entityName: string): number | null;
    ValueAsBoolean(entityName: string): boolean | null;
    ValueAsObject<T>(entityName: string): T | null;
    Values(entityName: string): MemoryValue[];
    Forget(entityName: string, entityValue?: string | null, isBucket?: boolean): void;
    RememberMany(entityName: string, entityId: string, entityValues: string[], isBucket?: boolean, builtinType?: string | null, resolution?: {} | null): void;
    Remember(entityName: string, entityId: string, entityValue: string, isBucket?: boolean, builtinType?: string | null, resolution?: any | null, enumValueId?: string | undefined): void;
    /** Return FilledEntity array for items I've remembered */
    FilledEntities(): FilledEntity[];
    static Split(action: string): string[];
}
