import type { Issue } from '../../infra/git/index.js';
import { type PipelineExecutionOptions } from '../tasks/index.js';
import type { PipelineConfig } from '../../core/models/index.js';
export interface TaskContent {
    task: string;
    issue?: Issue;
    prBranch?: string;
    prBaseBranch?: string;
}
export interface GitExecutionContext {
    execCwd: string;
    isWorktree: boolean;
    branch: string;
    baseBranch: string;
}
export interface SkipGitExecutionContext {
    execCwd: string;
    isWorktree: false;
    branch: undefined;
    baseBranch: undefined;
}
export type ExecutionContext = GitExecutionContext | SkipGitExecutionContext;
export declare function buildCommitMessage(pipelineConfig: PipelineConfig | undefined, issue: Issue | undefined, taskText: string | undefined): string;
export declare function resolveTaskContent(options: PipelineExecutionOptions): TaskContent | undefined;
export declare function resolveExecutionContext(cwd: string, task: string, options: Pick<PipelineExecutionOptions, 'createWorktree' | 'skipGit' | 'branch' | 'issueNumber'>, pipelineConfig: PipelineConfig | undefined, prBranch?: string, prBaseBranch?: string): Promise<ExecutionContext>;
export declare function runWorkflow(projectCwd: string, workflow: string, task: string, execCwd: string, options: Pick<PipelineExecutionOptions, 'provider' | 'model'>): Promise<boolean>;
export declare function commitAndPush(execCwd: string, projectCwd: string, branch: string, commitMessage: string, isWorktree: boolean): boolean;
//# sourceMappingURL=steps.d.ts.map