import type { TBranchSubjectPattern } from "../type/branch-subject-pattern.type";
/**
 * Domain policy for working with branch templates and placeholders.
 */
export declare class BranchTemplatePolicy {
    private static readonly PLACEHOLDER_PATTERN;
    buildBranchName(branchPattern: string, placeholderValues: Record<string, string>): string;
    buildValidationPatterns(branchPattern: string): Array<string>;
    getPlaceholders(branchPattern: string): Array<string>;
    isPlaceholderOptional(branchPattern: string, placeholderName: string): boolean;
    resolvePlaceholderPatternSource(placeholderName: string, branchTypes: Array<string>, subjectPattern?: TBranchSubjectPattern): string;
    private createAlternationPattern;
    private escapeRegex;
    private isDelimiter;
    private normalizeBranchNameDelimiters;
    private removeOptionalPlaceholder;
    private trimDelimiterEdges;
}
