import { PromptCommand } from '../lib/prompt-command.js';
/**
 * Format context passed to format functions.
 */
interface FormatContext {
    type: string;
    ticketId?: string;
    agent?: string;
    message: string;
}
/**
 * Commit message format presets.
 */
export declare const COMMIT_FORMATS: {
    readonly conventional: {
        readonly description: "Conventional commits with ticket as scope";
        readonly example: "{type}(TKT-ID): {message}";
        readonly format: (ctx: FormatContext) => string;
    };
    readonly 'full-context': {
        readonly description: "Ticket, type, and agent prefix";
        readonly example: "TKT-ID/{type}/{agent}: {message}";
        readonly format: (ctx: FormatContext) => string;
    };
    readonly 'ticket-first': {
        readonly description: "Ticket ID first, then type";
        readonly example: "TKT-ID: {type}: {message}";
        readonly format: (ctx: FormatContext) => string;
    };
    readonly 'with-agent': {
        readonly description: "Ticket and agent prefix";
        readonly example: "TKT-ID/{agent}: {message}";
        readonly format: (ctx: FormatContext) => string;
    };
    readonly 'ticket-suffix': {
        readonly description: "Type first, ticket at end in brackets";
        readonly example: "{type}: {message} [TKT-ID]";
        readonly format: (ctx: FormatContext) => string;
    };
    readonly 'ticket-only': {
        readonly description: "Just ticket ID prefix, no type";
        readonly example: "TKT-ID: {message}";
        readonly format: (ctx: FormatContext) => string;
    };
    readonly simple: {
        readonly description: "Type and message only, no ticket";
        readonly example: "{type}: {message}";
        readonly format: (ctx: FormatContext) => string;
    };
};
export type CommitFormat = keyof typeof COMMIT_FORMATS;
export declare const DEFAULT_COMMIT_FORMAT: CommitFormat;
export default class Commit extends PromptCommand {
    static description: string;
    static examples: string[];
    static args: {
        message: import("@oclif/core/interfaces").Arg<string | undefined, Record<string, unknown>>;
    };
    static flags: {
        json: import("@oclif/core/interfaces").BooleanFlag<boolean>;
        machine: import("@oclif/core/interfaces").BooleanFlag<boolean>;
        format: import("@oclif/core/interfaces").OptionFlag<string | undefined, import("@oclif/core/interfaces").CustomOptions>;
        formats: import("@oclif/core/interfaces").BooleanFlag<boolean>;
        type: import("@oclif/core/interfaces").OptionFlag<string | undefined, import("@oclif/core/interfaces").CustomOptions>;
        ticket: import("@oclif/core/interfaces").OptionFlag<string | undefined, import("@oclif/core/interfaces").CustomOptions>;
        all: import("@oclif/core/interfaces").BooleanFlag<boolean>;
        stage: import("@oclif/core/interfaces").OptionFlag<string[] | undefined, import("@oclif/core/interfaces").CustomOptions>;
        'dry-run': import("@oclif/core/interfaces").BooleanFlag<boolean>;
    };
    run(): Promise<void>;
}
export {};
