/** SDK-owned platform module. This implementation is maintained in goodvibes-sdk. */
/**
 * JSON Schema and TypeScript types for the `state` tool.
 */
export declare const STATE_TOOL_SCHEMA: {
    readonly type: "object";
    readonly properties: {
        readonly mode: {
            readonly type: "string";
            readonly enum: readonly ["get", "set", "list", "clear", "budget", "context", "memory", "telemetry", "hooks", "mode", "analytics"];
            readonly description: string;
        };
        readonly keys: {
            readonly type: "array";
            readonly items: {
                readonly type: "string";
            };
            readonly description: "(mode: get) Keys to retrieve from KVState.";
        };
        readonly values: {
            readonly type: "object";
            readonly additionalProperties: true;
            readonly description: "(mode: set) Key-value pairs to write into KVState.";
        };
        readonly prefix: {
            readonly type: "string";
            readonly description: "(mode: list) Optional prefix filter. Returns only keys starting with this string.";
        };
        readonly view: {
            readonly type: "string";
            readonly enum: readonly ["summary", "full"];
            readonly description: "(modes: list, memory, hooks, mode, analytics) Output detail level. Default: summary for inventory/reporting surfaces.";
        };
        readonly clearKeys: {
            readonly type: "array";
            readonly items: {
                readonly type: "string";
            };
            readonly description: "(mode: clear) Keys to remove from KVState.";
        };
        readonly memoryAction: {
            readonly type: "string";
            readonly enum: readonly ["get", "set", "list"];
            readonly description: "(mode: memory) Sub-action: get reads a key, set writes a key, list shows all keys.";
        };
        readonly memoryKey: {
            readonly type: "string";
            readonly description: "(mode: memory, action: get/set) The memory file key (filename without .json extension).";
        };
        readonly memoryValue: {
            readonly type: "string";
            readonly description: "(mode: memory, action: set) JSON string or plain text to write.";
        };
        readonly hookAction: {
            readonly type: "string";
            readonly enum: readonly ["list", "enable", "disable", "add", "remove"];
            readonly description: "(mode: hooks) Sub-action: list all hooks; enable/disable by name; add a new hook; remove by name.";
        };
        readonly hookName: {
            readonly type: "string";
            readonly description: "(mode: hooks, action: enable/disable/remove) Name of the hook to target.";
        };
        readonly hookDefinition: {
            readonly type: "object";
            readonly description: "(mode: hooks, action: add) Hook definition object with eventPattern and hook fields.";
            readonly properties: {
                readonly eventPattern: {
                    readonly type: "string";
                    readonly description: "Event path pattern (e.g. Pre:tool:*)";
                };
                readonly name: {
                    readonly type: "string";
                    readonly description: "Unique name for the hook.";
                };
                readonly type: {
                    readonly type: "string";
                    readonly enum: readonly ["command", "http", "ts"];
                    readonly description: "Hook type.";
                };
                readonly match: {
                    readonly type: "string";
                    readonly description: "Event path to match.";
                };
                readonly command: {
                    readonly type: "string";
                    readonly description: "(type: command) Shell command to run.";
                };
                readonly url: {
                    readonly type: "string";
                    readonly description: "(type: http) URL to POST to.";
                };
                readonly path: {
                    readonly type: "string";
                    readonly description: "(type: ts) Path to TypeScript file.";
                };
                readonly description: {
                    readonly type: "string";
                    readonly description: "Human-readable description.";
                };
            };
            readonly additionalProperties: true;
        };
        readonly modeAction: {
            readonly type: "string";
            readonly enum: readonly ["get", "set", "list"];
            readonly description: "(mode: mode) Sub-action: get returns current mode; set switches to a named mode; list returns all modes.";
        };
        readonly modeName: {
            readonly type: "string";
            readonly description: "(mode: mode, action: set) Name of the mode to switch to (e.g. default, vibecoding, justvibes).";
        };
        readonly analyticsAction: {
            readonly type: "string";
            readonly enum: readonly ["record", "query", "summary", "export", "dashboard", "sync"];
            readonly description: "(mode: analytics) Sub-action: record a tool call; query by filter; summary aggregation; export as JSON/CSV; dashboard top-level view; sync/persist to disk.";
        };
        readonly analyticsTool: {
            readonly type: "string";
            readonly description: "(mode: analytics, action: record/query) Tool name to record or filter by.";
        };
        readonly analyticsArgs: {
            readonly type: "object";
            readonly additionalProperties: true;
            readonly description: "(mode: analytics, action: record) Tool args to record.";
        };
        readonly analyticsResult: {
            readonly type: "object";
            readonly additionalProperties: true;
            readonly description: "(mode: analytics, action: record) Tool result to record.";
        };
        readonly analyticsDuration: {
            readonly type: "number";
            readonly description: "(mode: analytics, action: record) Duration in milliseconds.";
        };
        readonly analyticsTokens: {
            readonly type: "number";
            readonly description: "(mode: analytics, action: record) Token count.";
        };
        readonly analyticsFilter: {
            readonly type: "object";
            readonly additionalProperties: true;
            readonly description: "(mode: analytics, action: query) Filter object: { tool?, status?, since?, until?, limit? }";
        };
        readonly analyticsFormat: {
            readonly type: "string";
            readonly enum: readonly ["json", "csv"];
            readonly description: "(mode: analytics, action: export) Export format.";
        };
    };
    readonly required: readonly ["mode"];
    readonly additionalProperties: false;
};
/** All valid operation modes for the state tool. */
export type StateMode = 'get' | 'set' | 'list' | 'clear' | 'budget' | 'context' | 'memory' | 'telemetry' | 'hooks' | 'mode' | 'analytics';
/** Memory sub-action. */
export type MemoryAction = 'get' | 'set' | 'list';
/** Hooks sub-action. */
export type HookAction = 'list' | 'enable' | 'disable' | 'add' | 'remove';
/** Mode sub-action. */
export type ModeAction = 'get' | 'set' | 'list';
/** Analytics sub-action. */
export type AnalyticsAction = 'record' | 'query' | 'summary' | 'export' | 'dashboard' | 'sync';
/** Full input shape for the state tool. */
export interface StateInput {
    mode: StateMode;
    keys?: string[];
    values?: Record<string, unknown>;
    prefix?: string;
    view?: 'summary' | 'full';
    clearKeys?: string[];
    memoryAction?: MemoryAction;
    memoryKey?: string;
    memoryValue?: string;
    hookAction?: HookAction;
    hookName?: string;
    hookDefinition?: {
        eventPattern: string;
        name?: string;
        type: 'command' | 'http' | 'ts';
        match: string;
        command?: string;
        url?: string;
        path?: string;
        description?: string;
        [key: string]: unknown;
    };
    modeAction?: ModeAction;
    modeName?: string;
    analyticsAction?: AnalyticsAction;
    analyticsTool?: string;
    analyticsArgs?: Record<string, unknown>;
    analyticsResult?: Record<string, unknown>;
    analyticsDuration?: number;
    analyticsTokens?: number;
    analyticsFilter?: Record<string, unknown>;
    analyticsFormat?: 'json' | 'csv';
}
//# sourceMappingURL=schema.d.ts.map