import type { ExecutionContext, TypedExecutionContext } from '../../types/core';
import type { ASTNode, ExpressionNode } from '../../types/base-types';
import type { ExpressionEvaluator } from '../../core/expression-evaluator';
import { type DecoratedCommand, type CommandMetadata } from '../decorators';
export interface PersistCommandInput {
    key: string;
    value?: unknown;
    storage?: 'local' | 'session';
    ttl?: number;
    operation?: 'save' | 'restore' | 'remove';
}
export interface PersistCommandOutput {
    success: boolean;
    operation: 'save' | 'restore' | 'remove';
    key: string;
    value?: unknown;
    storage: 'local' | 'session';
    timestamp?: number;
    expired?: boolean;
}
export declare class PersistCommand implements DecoratedCommand {
    readonly name: string;
    readonly metadata: CommandMetadata;
    parseInput(raw: {
        args: ASTNode[];
        modifiers: Record<string, ExpressionNode>;
    }, evaluator: ExpressionEvaluator, context: ExecutionContext): Promise<PersistCommandInput>;
    execute(input: PersistCommandInput, context: TypedExecutionContext): Promise<PersistCommandOutput>;
    private getStorage;
    private saveValue;
    private restoreValue;
    private removeValue;
    private dispatchEvent;
}
export declare const createPersistCommand: () => PersistCommand;
export default PersistCommand;
//# sourceMappingURL=persist.d.ts.map