import * as _kb_labs_perm_presets from '@kb-labs/perm-presets';

/**
 * KB Labs Agent Plugin - Manifest V3
 */
declare const manifest: {
    schema: string;
    id: string;
    version: string;
    display: {
        name: string;
        description: string;
        tags: string[];
    };
    configSection: string;
    platform: {
        requires: string[];
        optional: string[];
    };
    cli: {
        commands: {
            id: string;
            group: string;
            describe: string;
            longDescription: string;
            handler: string;
            handlerPath: string;
            flags: {
                name: string;
                type: "string" | "boolean" | "number" | "array";
                alias?: string;
                default?: unknown;
                description?: string;
                choices?: string[];
                required?: boolean;
            }[];
            examples: string[];
        }[];
    };
    capabilities: never[];
    permissions: _kb_labs_perm_presets.RuntimePermissionSpec;
    rest: {
        basePath: "/v1/plugins/agents";
        defaults: {
            timeoutMs: number;
        };
        routes: ({
            method: string;
            path: "/run";
            description: string;
            handler: string;
            security: string[];
        } | {
            method: string;
            path: "/run/:runId";
            description: string;
            handler: string;
            security: string[];
        } | {
            method: string;
            path: "/run/:runId/correct";
            description: string;
            handler: string;
            security: string[];
        } | {
            method: string;
            path: "/run/:runId/stop";
            description: string;
            handler: string;
            security: string[];
        } | {
            method: string;
            path: "/sessions";
            description: string;
            handler: string;
            security: string[];
        } | {
            method: string;
            path: "/sessions/:sessionId";
            description: string;
            handler: string;
            security: string[];
        } | {
            method: string;
            path: "/sessions/:sessionId/turns";
            description: string;
            handler: string;
            security: string[];
        } | {
            method: string;
            path: "/sessions/:sessionId/plan";
            description: string;
            handler: string;
            security: string[];
        } | {
            method: string;
            path: "/sessions/:sessionId/plan/approve";
            description: string;
            handler: string;
            security: string[];
        } | {
            method: string;
            path: "/sessions/:sessionId/plan/execute";
            description: string;
            handler: string;
            security: string[];
        } | {
            method: string;
            path: "/sessions/:sessionId/plan/spec";
            description: string;
            handler: string;
            security: string[];
        } | {
            method: string;
            path: "/sessions/:sessionId/spec";
            description: string;
            handler: string;
            security: string[];
        } | {
            method: string;
            path: "/sessions/:sessionId/changes";
            description: string;
            handler: string;
            security: string[];
        } | {
            method: string;
            path: "/sessions/:sessionId/changes/:changeId/diff";
            description: string;
            handler: string;
            security: string[];
        } | {
            method: string;
            path: "/sessions/:sessionId/rollback";
            description: string;
            handler: string;
            security: string[];
        } | {
            method: string;
            path: "/sessions/:sessionId/approve";
            description: string;
            handler: string;
            security: string[];
        })[];
    };
    ws: {
        basePath: "/v1/ws/plugins/agents";
        defaults: {
            auth: string;
            idleTimeoutMs: number;
        };
        channels: {
            path: "/session/:sessionId";
            description: string;
            handler: string;
            auth: string;
        }[];
    };
    artifacts: {
        id: string;
        pathTemplate: string;
        description: string;
    }[];
    studio: {
        version: 2;
        remoteName: string;
        pages: {
            id: string;
            title: string;
            icon: string;
            route: string;
            entry: string;
            order: number;
        }[];
        menus: {
            id: string;
            label: string;
            icon: string;
            target: string;
            order: number;
        }[];
    };
};

export { manifest };
