import { z } from 'zod';
/**
 * Memory strategy types.
 * Maps to AWS MemoryStrategy types:
 * - SEMANTIC → SemanticMemoryStrategy
 * - SUMMARIZATION → SummaryMemoryStrategy (note: CloudFormation uses "Summary")
 * - USER_PREFERENCE → UserPreferenceMemoryStrategy
 * - EPISODIC → EpisodicMemoryStrategy
 * @see https://docs.aws.amazon.com/AWSCloudFormation/latest/TemplateReference/aws-properties-bedrockagentcore-memory-memorystrategy.html
 */
export declare const MemoryStrategyTypeSchema: z.ZodEnum<{
    SEMANTIC: "SEMANTIC";
    SUMMARIZATION: "SUMMARIZATION";
    USER_PREFERENCE: "USER_PREFERENCE";
    EPISODIC: "EPISODIC";
}>;
export type MemoryStrategyType = z.infer<typeof MemoryStrategyTypeSchema>;
/**
 * Default namespace templates for each memory strategy type.
 * These match the patterns generated in CLI session.py templates.
 */
export declare const DEFAULT_STRATEGY_NAMESPACE_TEMPLATES: Partial<Record<MemoryStrategyType, string[]>>;
/**
 * @deprecated Use {@link DEFAULT_STRATEGY_NAMESPACE_TEMPLATES} instead.
 * Retained as an alias for backward compatibility.
 */
export declare const DEFAULT_STRATEGY_NAMESPACES: Partial<Record<"SEMANTIC" | "SUMMARIZATION" | "USER_PREFERENCE" | "EPISODIC", string[]>>;
/**
 * Default reflection namespace templates for the EPISODIC strategy.
 * The service requires reflection templates to be the same as or a prefix of episode templates.
 */
export declare const DEFAULT_EPISODIC_REFLECTION_NAMESPACE_TEMPLATES: string[];
/**
 * @deprecated Use {@link DEFAULT_EPISODIC_REFLECTION_NAMESPACE_TEMPLATES} instead.
 * Retained as an alias for backward compatibility.
 */
export declare const DEFAULT_EPISODIC_REFLECTION_NAMESPACES: string[];
/**
 * Memory strategy name validation.
 * Pattern: ^[a-zA-Z][a-zA-Z0-9_]{0,47}$
 * @see https://docs.aws.amazon.com/AWSCloudFormation/latest/TemplateReference/aws-resource-bedrockagentcore-memory.html#cfn-bedrockagentcore-memory-name
 */
export declare const MemoryStrategyNameSchema: z.ZodString;
/**
 * Memory strategy configuration.
 * Each memory can have multiple strategies with optional namespace scoping.
 *
 * Field naming:
 * - `namespaceTemplates` / `reflectionNamespaceTemplates` are the preferred field names.
 * - `namespaces` / `reflectionNamespaces` are deprecated aliases retained for backward
 *   compatibility. Specifying both the deprecated and preferred form for the same concept
 *   is rejected by validation.
 */
export declare const MemoryStrategySchema: z.ZodObject<{
    type: z.ZodEnum<{
        SEMANTIC: "SEMANTIC";
        SUMMARIZATION: "SUMMARIZATION";
        USER_PREFERENCE: "USER_PREFERENCE";
        EPISODIC: "EPISODIC";
    }>;
    name: z.ZodOptional<z.ZodString>;
    description: z.ZodOptional<z.ZodString>;
    namespaceTemplates: z.ZodOptional<z.ZodArray<z.ZodString>>;
    namespaces: z.ZodOptional<z.ZodArray<z.ZodString>>;
    reflectionNamespaceTemplates: z.ZodOptional<z.ZodArray<z.ZodString>>;
    reflectionNamespaces: z.ZodOptional<z.ZodArray<z.ZodString>>;
}, z.core.$strip>;
export type MemoryStrategy = z.infer<typeof MemoryStrategySchema>;
//# sourceMappingURL=memory.d.ts.map