import { Spec } from "./Spec.js";
import type { Accumulate } from "../dtos/Accumulate.js";
import type { Refine } from "../dtos/Refine.js";
import { Builder } from "./Builder.js";
import type { InitialType, RedefineInitialValue, RedefineParseResult } from "./Spec.js";
export declare class NumberArgumentBuilder<T extends Spec<any, any>> extends Builder<T> {
    initial<U>(initial: U): NumberArgumentBuilder<RedefineInitialValue<T, U>>;
    accumulate(accumulate: Accumulate): NumberArgumentBuilder<T>;
    refine<U>(refine: Refine): NumberArgumentBuilder<RedefineParseResult<T, U>>;
    metadata(values: Record<string, any>): NumberArgumentBuilder<T>;
    describe(description: string): NumberArgumentBuilder<T>;
    required(): NumberArgumentBuilder<T>;
    transform<U>(transform: (value: InitialType<this["spec"]>) => U): NumberArgumentBuilder<Spec<any, U>>;
    notNaN: () => NumberArgumentBuilder<Spec<any, unknown>>;
    gt: (greaterThan: number) => NumberArgumentBuilder<RedefineParseResult<T, unknown>>;
    gte: (greaterThanOrEqual: number) => NumberArgumentBuilder<RedefineParseResult<T, unknown>>;
    lt: (lessThan: number) => NumberArgumentBuilder<RedefineParseResult<T, unknown>>;
    lte: (lessThanOrEqual: number) => NumberArgumentBuilder<RedefineParseResult<T, unknown>>;
    greaterThan: (greaterThan: number) => NumberArgumentBuilder<RedefineParseResult<T, unknown>>;
    greaterThanOrEqual: (greaterThanOrEqual: number) => NumberArgumentBuilder<RedefineParseResult<T, unknown>>;
    lessThan: (lessThan: number) => NumberArgumentBuilder<RedefineParseResult<T, unknown>>;
    lessThanOrEqual: (lessThanOrEqual: number) => NumberArgumentBuilder<RedefineParseResult<T, unknown>>;
    positive: () => NumberArgumentBuilder<RedefineParseResult<T, unknown>>;
    negative: () => NumberArgumentBuilder<RedefineParseResult<T, unknown>>;
    multipleOf: (multipleOf: number) => NumberArgumentBuilder<RedefineParseResult<T, unknown>>;
}
