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

/**
 * KB Labs Commit Plugin - Manifest V3
 *
 * Migration from V2 to V3 following best practices from V3-MIGRATION-GUIDE.md
 *
 * Key changes:
 * - Schema: kb.plugin/3
 * - Commands use handler#default suffix
 * - Commands have handlerPath field
 * - All imports from @kb-labs/sdk
 */
declare const manifest: {
    schema: string;
    id: string;
    version: string;
    configSection: string;
    display: {
        name: string;
        description: string;
        tags: 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/commit";
        routes: ({
            method: string;
            path: "/scopes";
            handler: string;
            output: {
                zod: string;
            };
            input?: undefined;
            timeoutMs?: undefined;
        } | {
            method: string;
            path: "/status";
            handler: string;
            output: {
                zod: string;
            };
            input?: undefined;
            timeoutMs?: undefined;
        } | {
            method: string;
            path: "/generate";
            handler: string;
            input: {
                zod: string;
            };
            output: {
                zod: string;
            };
            timeoutMs: number;
        } | {
            method: string;
            path: "/plan";
            handler: string;
            output: {
                zod: string;
            };
            input?: undefined;
            timeoutMs?: undefined;
        } | {
            method: string;
            path: "/apply";
            handler: string;
            input: {
                zod: string;
            };
            output: {
                zod: string;
            };
            timeoutMs: number;
        } | {
            method: string;
            path: "/push";
            handler: string;
            input: {
                zod: string;
            };
            output: {
                zod: string;
            };
            timeoutMs: number;
        } | {
            method: string;
            path: "/git-status";
            handler: string;
            output: {
                zod: string;
            };
            input?: undefined;
            timeoutMs?: undefined;
        } | {
            method: string;
            path: "/files";
            handler: string;
            output?: undefined;
            input?: undefined;
            timeoutMs?: undefined;
        } | {
            method: string;
            path: "/diff";
            handler: string;
            output: {
                zod: string;
            };
            input?: undefined;
            timeoutMs?: undefined;
        } | {
            method: string;
            path: "/summarize";
            handler: string;
            input: {
                zod: string;
            };
            output: {
                zod: string;
            };
            timeoutMs?: undefined;
        } | {
            method: string;
            path: "/actions";
            handler: string;
            output: {
                zod: string;
            };
            input?: undefined;
            timeoutMs?: undefined;
        } | {
            method: string;
            path: "/plan";
            handler: string;
            input: {
                zod: string;
            };
            output: {
                zod: string;
            };
            timeoutMs?: undefined;
        } | {
            method: string;
            path: "/regenerate-commit";
            handler: string;
            input: {
                zod: string;
            };
            output: {
                zod: string;
            };
            timeoutMs: number;
        })[];
    };
    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;
        }[];
    };
    artifacts: {
        id: string;
        pathTemplate: string;
        description: string;
    }[];
};

export { manifest as default, manifest };
