/**
 * Issue State Manager - Auto-update GitHub issue state based on progress
 *
 * Rules:
 * - 0% complete → State = open
 * - 1-99% complete → State = open, label = in-progress
 * - 100% complete → State = closed
 */
/**
 * Issue state
 */
export type IssueState = 'open' | 'closed';
/**
 * State change result
 */
export interface StateChangeResult {
    /** Previous state */
    previousState: IssueState;
    /** New state */
    newState: IssueState;
    /** State changed */
    changed: boolean;
    /** Labels added */
    labelsAdded: string[];
    /** Labels removed */
    labelsRemoved: string[];
}
/**
 * Progress info
 */
export interface ProgressInfo {
    /** Total ACs */
    totalAcs: number;
    /** Completed ACs */
    completedAcs: number;
    /** AC completion percentage */
    acPercentage: number;
    /** Total tasks */
    totalTasks: number;
    /** Completed tasks */
    completedTasks: number;
    /** Task completion percentage */
    taskPercentage: number;
    /** Overall completion percentage */
    overallPercentage: number;
    /** Is 100% complete */
    isComplete: boolean;
}
/**
 * IssueStateManager - Manages GitHub issue state
 */
export declare class IssueStateManager {
    /**
     * Determine issue state based on progress
     *
     * @param progress - Progress information
     * @param currentState - Current issue state
     * @returns State change result
     */
    static determineState(progress: ProgressInfo, currentState: IssueState): StateChangeResult;
    /**
     * Calculate progress from acceptance criteria and tasks
     *
     * @param acs - Acceptance criteria
     * @param tasks - Tasks
     * @returns Progress information
     */
    static calculateProgress(acs: Array<{
        completed: boolean;
    }>, tasks: Array<{
        completed: boolean;
    }>): ProgressInfo;
    /**
     * Format progress as markdown
     *
     * @param progress - Progress information
     * @returns Markdown string
     */
    static formatProgressMarkdown(progress: ProgressInfo): string;
    /**
     * Generate ASCII progress bar
     *
     * @param percentage - Completion percentage (0-100)
     * @returns Progress bar string
     */
    private static generateProgressBar;
    /**
     * Build GitHub CLI command to update issue state
     *
     * @param issueNumber - GitHub issue number
     * @param state - New state
     * @param labelsToAdd - Labels to add
     * @param labelsToRemove - Labels to remove
     * @returns gh CLI command
     */
    static buildGitHubCommand(issueNumber: number, state: IssueState, labelsToAdd: string[], labelsToRemove: string[]): string;
}
//# sourceMappingURL=IssueStateManager.d.ts.map