import { Builder } from "./Builder.js";
import { Spec, type InitialType, type ParseResultType, type RedefineInitialValue, type RedefineParseResult } from "./Spec.js";
import type { Accumulate } from "../dtos/Accumulate.js";
import type { Refine } from "../dtos/Refine.js";
export declare class StringFlagBuilder<T extends Spec<any, any>> extends Builder<T> {
    initial<U>(initial: U): StringFlagBuilder<RedefineInitialValue<T, U>>;
    accumulate(accumulate: Accumulate): StringFlagBuilder<T>;
    refine<U>(refine: Refine): StringFlagBuilder<RedefineParseResult<T, U>>;
    metadata(values: Record<string, any>): StringFlagBuilder<T>;
    describe(description: string): StringFlagBuilder<T>;
    required(): StringFlagBuilder<T>;
    default(value: ParseResultType<T>): StringFlagBuilder<RedefineInitialValue<T, ParseResultType<T>>>;
    delimiter(delimiter: string): StringFlagBuilder<T>;
    transform<T>(transform: (value: InitialType<this["spec"]>) => T): StringFlagBuilder<Spec<any, T>>;
}
