import { Field } from '.';
import { BooleanFieldInfo, DateFieldInfo, JSONFieldInfo, NumberFieldInfo, SQLNativeFieldInfo, StringFieldInfo, TimestampFieldInfo } from '../types';
import { FieldBase } from './base';
export declare class NumberField extends FieldBase {
    readonly field: NumberFieldInfo;
    min: number | undefined;
    max: number | undefined;
    private _maxString;
    constructor(field: NumberFieldInfo, parent: Field | undefined);
    registerValue(value: number): void;
    fieldAtPath(path: string[]): Field;
    get minNumber(): number | undefined;
    get maxNumber(): number | undefined;
    get maxString(): string | undefined;
}
export declare class DateField extends FieldBase {
    readonly field: DateFieldInfo;
    min: Date | undefined;
    max: Date | undefined;
    private _maxString;
    constructor(field: DateFieldInfo, parent: Field | undefined);
    get timeframe(): import('@malloydata/malloy-interfaces').DateTimeframe | undefined;
    registerValue(value: Date): void;
    get minValue(): Date | undefined;
    get maxValue(): Date | undefined;
    get maxString(): string | undefined;
    get minNumber(): number | undefined;
    get maxNumber(): number | undefined;
}
export declare class TimestampField extends FieldBase {
    readonly field: TimestampFieldInfo;
    min: Date | undefined;
    max: Date | undefined;
    private _maxString;
    constructor(field: TimestampFieldInfo, parent: Field | undefined);
    get timeframe(): import('@malloydata/malloy-interfaces').TimestampTimeframe | undefined;
    registerValue(value: Date): void;
    get minValue(): Date | undefined;
    get maxValue(): Date | undefined;
    get maxString(): string | undefined;
}
export declare class StringField extends FieldBase {
    readonly field: StringFieldInfo;
    min: string | undefined;
    max: string | undefined;
    private _maxString;
    constructor(field: StringFieldInfo, parent: Field | undefined);
    registerValue(value: string): void;
    get minValue(): string | undefined;
    get maxValue(): string | undefined;
    get maxString(): string | undefined;
}
export declare class SQLNativeField extends FieldBase {
    readonly field: SQLNativeFieldInfo;
    constructor(field: SQLNativeFieldInfo, parent: Field | undefined);
}
export declare class JSONField extends FieldBase {
    readonly field: JSONFieldInfo;
    constructor(field: JSONFieldInfo, parent: Field | undefined);
}
export declare class BooleanField extends FieldBase {
    readonly field: BooleanFieldInfo;
    private _maxString;
    constructor(field: BooleanFieldInfo, parent: Field | undefined);
    get maxString(): string | undefined;
    registerValue(value: boolean): void;
}
