/**
 * Branch Utilities
 *
 * Utilities for creating and validating conventional branch names.
 * Format: {type}/{coder}/{description} or {type}/{description}
 */
export declare const BRANCH_TYPES: {
    readonly feat: "New feature";
    readonly fix: "Bug fix";
    readonly rfct: "Refactoring (no functional change)";
    readonly docs: "Documentation only";
    readonly test: "Test additions or corrections";
    readonly chore: "Maintenance tasks, no production code";
    readonly perf: "Performance improvement";
    readonly ci: "CI/CD configuration changes";
    readonly build: "Build system or external dependency changes";
    readonly sec: "Security fixes or improvements";
    readonly db: "Database migrations or schema changes";
    readonly rel: "Release preparation";
    readonly ship: "Shipping, deployment, and launch";
    readonly grow: "Growth and marketing initiatives";
    readonly cx: "Customer experience and support";
    readonly strat: "Strategy and planning";
    readonly ops: "Business operations";
};
export type BranchType = keyof typeof BRANCH_TYPES;
export declare const CONVENTIONAL_TYPES: BranchType[];
export declare const EXTENDED_TYPES: BranchType[];
export declare const FOUNDER_TYPES: BranchType[];
export declare const DEVELOPMENT_TYPES: BranchType[];
export declare const BUSINESS_TYPES: BranchType[];
export declare function isKebabCase(str: string): boolean;
export declare function isValidBranchType(type: string): type is BranchType;
export interface BranchParts {
    ticketId?: string;
    type: BranchType;
    owner?: string;
    agent?: string;
    description: string;
}
export interface ValidationResult {
    valid: boolean;
    parts?: BranchParts;
    error?: string;
}
/**
 * Check if a string looks like a ticket ID.
 */
export declare function isTicketId(str: string): boolean;
/**
 * Parse and validate a branch name against conventional format.
 *
 * Supported formats:
 * - {ticketId}/{type}/{owner}/{agent}/{description} - full format with ticket
 * - {ticketId}/{type}/{owner}/{description} - ticket format without agent (manual)
 * - {type}/{owner}/{description} - legacy format without ticket
 * - {type}/{description} - minimal format
 */
export declare function validateBranchName(name: string): ValidationResult;
/**
 * Build a branch name from parts.
 *
 * Formats:
 * - With ticket + agent: {ticketId}/{type}/{owner}/{agent}/{description}
 * - With ticket (manual): {ticketId}/{type}/{owner}/{description}
 * - Without ticket: {type}/{owner}/{description}
 * - Minimal: {type}/{description}
 */
export declare function buildBranchName(type: BranchType, description: string, options?: {
    ticketId?: string;
    owner?: string;
    agent?: string;
}): string;
/**
 * Convert a string to kebab-case.
 */
export declare function toKebabCase(str: string): string;
export interface BranchInfo {
    name: string;
    current: boolean;
    ticketId?: string;
    type?: BranchType;
    owner?: string;
    agent?: string;
    description?: string;
    tracking?: string;
    repo?: string;
}
/**
 * Get current branch name.
 */
export declare function getCurrentBranch(cwd?: string): string | null;
/**
 * List all branches with parsed info.
 */
export declare function listBranches(cwd?: string, includeRemote?: boolean): BranchInfo[];
/**
 * Check if a branch exists.
 */
export declare function branchExists(name: string, cwd?: string): boolean;
/**
 * Create a new branch.
 * @param startPoint - Optional starting point (e.g., 'origin/main')
 */
export declare function createBranch(name: string, cwd?: string, checkout?: boolean, startPoint?: string): void;
/**
 * Fetch from origin.
 */
export declare function fetchOrigin(ref?: string, cwd?: string): boolean;
/**
 * Switch to an existing branch.
 */
export declare function checkoutBranch(name: string, cwd?: string): void;
/**
 * Create an empty commit.
 */
export declare function createEmptyCommit(message: string, cwd?: string): void;
/**
 * Check if in a git repository.
 */
export declare function isGitRepo(cwd?: string): boolean;
