import type { Feature } from '../../../../../packages/core/src/domain/generated/output.js';
interface Attachment {
    path: string;
    name: string;
    notes?: string;
}
interface CreateFeatureInput {
    description: string;
    repositoryPath: string;
    attachments?: Attachment[];
    sessionId?: string;
    approvalGates?: {
        allowPrd: boolean;
        allowPlan: boolean;
        allowMerge?: boolean;
    };
    push?: boolean;
    openPr?: boolean;
    parentId?: string;
    /** When true, skip SDLC phases and implement directly from the prompt. */
    fast?: boolean;
    /** When true, create the feature in pending state (no agent spawned). */
    pending?: boolean;
    /** Fork repo and create PR to upstream at merge time. */
    forkAndPr?: boolean;
    /** Commit specs/evidences into the repo (default: true, auto-false when forkAndPr). */
    commitSpecs?: boolean;
    /** Enable CI watch/fix loop after push. */
    ciWatchEnabled?: boolean;
    /** Enable evidence collection after implementation. */
    enableEvidence?: boolean;
    /** Commit evidence to PR. */
    commitEvidence?: boolean;
    /** Optional agent type override for this feature run */
    agentType?: string;
    /** Optional model identifier for this feature run */
    model?: string;
    /** Sync main from remote before creating the feature branch (default: true). */
    rebaseBeforeBranch?: boolean;
    /** Inject curated skills into the feature worktree. */
    injectSkills?: boolean;
    /** When the drawer was launched scoped to an Application, the
     *  application's domain UUID. Persisted on the Feature so the canvas can
     *  render an app→feature parent edge. */
    applicationId?: string;
}
export declare function createFeature(input: CreateFeatureInput): Promise<{
    feature?: Feature;
    error?: string;
}>;
export {};
//# sourceMappingURL=create-feature.d.ts.map