import { AtomicSchemaObject, type LogicalCombinationOfLiterals } from '../../atomic-schema/index.js';
import type { ExtractionPlugin, ConjunctionSchema, SimplificationPluginArguments } from '../../plugin/index.js';
export declare class MinimumAtomicSchema extends AtomicSchemaObject {
    readonly minimum: number;
    constructor(minimum: number);
    negate(): LogicalCombinationOfLiterals;
    toJSONSchema(): {
        minimum: number;
    };
}
export declare class MaximumAtomicSchema extends AtomicSchemaObject {
    readonly maximum: number;
    constructor(maximum: number);
    negate(): LogicalCombinationOfLiterals;
    toJSONSchema(): {
        maximum: number;
    };
}
export declare const numberExtraction: ExtractionPlugin;
export type NumberConjunctionSchema = {
    minimum?: number;
    maximum?: number;
    multipleOf?: number;
    allOf?: ({
        not: {
            multipleOf: number;
        };
    } | {
        not: {
            const: number;
        };
    })[];
};
export declare const numberSimplification: {
    readonly appliesToJSONSchemaType: "number";
    readonly mergeableKeywords: ["minimum", "maximum", "multipleOf"];
    readonly simplify: ({ atomicSchemasByConstructor, negatedAtomicSchemasByConstructor, validateConst, }: SimplificationPluginArguments) => ConjunctionSchema<NumberConjunctionSchema>;
};
