/** * Configuration schema and defaults for @generacy-ai/agency-plugin-spec-kit * * Uses Zod for runtime validation with TypeScript type inference. */ import { z } from 'zod'; /** * Zod schema for path configuration */ export declare const PathsConfigSchema: z.ZodObject<{ /** Directory for spec artifacts (default: 'specs') */ specs: z.ZodDefault; /** Directory for templates (default: '.specify/templates') */ templates: z.ZodDefault; }, "strip", z.ZodTypeAny, { specs: string; templates: string; }, { specs?: string | undefined; templates?: string | undefined; }>; /** * Zod schema for branch naming configuration */ export declare const BranchesConfigSchema: z.ZodObject<{ /** Branch name pattern (default: '{paddedNumber}-{slug}') */ pattern: z.ZodDefault; /** Zero-padding for issue numbers (default: 3) */ numberPadding: z.ZodDefault; /** Maximum words in slug (default: 4) */ maxSlugWords: z.ZodDefault; }, "strip", z.ZodTypeAny, { pattern: string; numberPadding: number; maxSlugWords: number; }, { pattern?: string | undefined; numberPadding?: number | undefined; maxSlugWords?: number | undefined; }>; /** * Zod schema for Jira provider configuration */ export declare const JiraConfigSchema: z.ZodObject<{ /** Jira base URL (e.g., https://company.atlassian.net) */ baseUrl: z.ZodString; /** Jira project key (e.g., PROJ) */ projectKey: z.ZodString; /** Jira user email for authentication (optional, can use JIRA_EMAIL env var) */ email: z.ZodOptional; /** Jira API token for authentication (optional, can use JIRA_API_TOKEN env var) */ apiToken: z.ZodOptional; }, "strip", z.ZodTypeAny, { baseUrl: string; projectKey: string; email?: string | undefined; apiToken?: string | undefined; }, { baseUrl: string; projectKey: string; email?: string | undefined; apiToken?: string | undefined; }>; /** * Zod schema for Shortcut provider configuration */ export declare const ShortcutConfigSchema: z.ZodObject<{ /** Shortcut workspace slug */ workspaceSlug: z.ZodString; }, "strip", z.ZodTypeAny, { workspaceSlug: string; }, { workspaceSlug: string; }>; /** * Zod schema for backlog provider configuration */ export declare const BacklogConfigSchema: z.ZodObject<{ /** Backlog provider type (default: 'github') */ provider: z.ZodDefault>; /** GitHub-specific configuration (empty for now) */ github: z.ZodOptional>; /** Jira-specific configuration */ jira: z.ZodOptional; /** Jira API token for authentication (optional, can use JIRA_API_TOKEN env var) */ apiToken: z.ZodOptional; }, "strip", z.ZodTypeAny, { baseUrl: string; projectKey: string; email?: string | undefined; apiToken?: string | undefined; }, { baseUrl: string; projectKey: string; email?: string | undefined; apiToken?: string | undefined; }>>; /** Shortcut-specific configuration */ shortcut: z.ZodOptional>; }, "strip", z.ZodTypeAny, { provider: "github" | "jira" | "shortcut" | "local"; github?: {} | undefined; jira?: { baseUrl: string; projectKey: string; email?: string | undefined; apiToken?: string | undefined; } | undefined; shortcut?: { workspaceSlug: string; } | undefined; }, { github?: {} | undefined; jira?: { baseUrl: string; projectKey: string; email?: string | undefined; apiToken?: string | undefined; } | undefined; shortcut?: { workspaceSlug: string; } | undefined; provider?: "github" | "jira" | "shortcut" | "local" | undefined; }>; /** * Complete SpecKit plugin configuration schema * * Provides sensible defaults for all settings while allowing full customization. * * @example * ```typescript * const config = SpecKitConfigSchema.parse({ * paths: { specs: 'features' }, * backlog: { provider: 'jira', jira: { baseUrl: 'https://jira.example.com', projectKey: 'PROJ' } }, * }); * ``` */ export declare const SpecKitConfigSchema: z.ZodObject<{ /** Path configuration */ paths: z.ZodDefault; /** Directory for templates (default: '.specify/templates') */ templates: z.ZodDefault; }, "strip", z.ZodTypeAny, { specs: string; templates: string; }, { specs?: string | undefined; templates?: string | undefined; }>>; /** Branch naming configuration */ branches: z.ZodDefault; /** Zero-padding for issue numbers (default: 3) */ numberPadding: z.ZodDefault; /** Maximum words in slug (default: 4) */ maxSlugWords: z.ZodDefault; }, "strip", z.ZodTypeAny, { pattern: string; numberPadding: number; maxSlugWords: number; }, { pattern?: string | undefined; numberPadding?: number | undefined; maxSlugWords?: number | undefined; }>>; /** Backlog provider configuration */ backlog: z.ZodDefault>; /** GitHub-specific configuration (empty for now) */ github: z.ZodOptional>; /** Jira-specific configuration */ jira: z.ZodOptional; /** Jira API token for authentication (optional, can use JIRA_API_TOKEN env var) */ apiToken: z.ZodOptional; }, "strip", z.ZodTypeAny, { baseUrl: string; projectKey: string; email?: string | undefined; apiToken?: string | undefined; }, { baseUrl: string; projectKey: string; email?: string | undefined; apiToken?: string | undefined; }>>; /** Shortcut-specific configuration */ shortcut: z.ZodOptional>; }, "strip", z.ZodTypeAny, { provider: "github" | "jira" | "shortcut" | "local"; github?: {} | undefined; jira?: { baseUrl: string; projectKey: string; email?: string | undefined; apiToken?: string | undefined; } | undefined; shortcut?: { workspaceSlug: string; } | undefined; }, { github?: {} | undefined; jira?: { baseUrl: string; projectKey: string; email?: string | undefined; apiToken?: string | undefined; } | undefined; shortcut?: { workspaceSlug: string; } | undefined; provider?: "github" | "jira" | "shortcut" | "local" | undefined; }>>; }, "strip", z.ZodTypeAny, { paths: { specs: string; templates: string; }; branches: { pattern: string; numberPadding: number; maxSlugWords: number; }; backlog: { provider: "github" | "jira" | "shortcut" | "local"; github?: {} | undefined; jira?: { baseUrl: string; projectKey: string; email?: string | undefined; apiToken?: string | undefined; } | undefined; shortcut?: { workspaceSlug: string; } | undefined; }; }, { paths?: { specs?: string | undefined; templates?: string | undefined; } | undefined; branches?: { pattern?: string | undefined; numberPadding?: number | undefined; maxSlugWords?: number | undefined; } | undefined; backlog?: { github?: {} | undefined; jira?: { baseUrl: string; projectKey: string; email?: string | undefined; apiToken?: string | undefined; } | undefined; shortcut?: { workspaceSlug: string; } | undefined; provider?: "github" | "jira" | "shortcut" | "local" | undefined; } | undefined; }>; /** * SpecKit plugin configuration type inferred from Zod schema */ export type SpecKitConfig = z.infer; /** * Default configuration with all defaults applied */ export declare const DEFAULT_CONFIG: SpecKitConfig; /** * Parse and validate configuration from raw input * * @param raw - Raw configuration object (or undefined for defaults) * @returns Validated configuration with defaults applied * @throws ZodError if configuration is invalid */ export declare function parseConfig(raw?: unknown): SpecKitConfig; /** * Legacy interface for backwards compatibility */ export interface SpecKitPluginConfig { /** Directory where specs are stored */ specDirectory: string; /** Directory containing spec templates */ templateDirectory: string; } /** * Resolve legacy config format to new format * * @deprecated Use parseConfig instead */ export declare function resolveConfig(userConfig?: Partial): SpecKitPluginConfig; //# sourceMappingURL=config.d.ts.map