import { Field } from './field';
export declare abstract class DisplayField {
    abstract get key(): string;
    abstract get name(): string;
    abstract get label(): string;
    aliasedAs(alias: string): DisplayField.Aliased;
    dealias(): DisplayField;
    static fromString(s: string): DisplayField.Static;
    abstract clone(): DisplayField;
    toJSON(): {
        key: string;
        name: string;
        label: string;
    };
}
export declare namespace DisplayField {
    class Static extends DisplayField {
        field: Field;
        constructor(field: Field);
        clone(): Static;
        get key(): string;
        get name(): string;
        get label(): string;
    }
    class Function extends DisplayField {
        fnName: string;
        args: string[];
        constructor(fnName: string, args: string[]);
        clone(): Function;
        get key(): string;
        get name(): string;
        get label(): string;
    }
    class Aliased extends DisplayField {
        field: DisplayField;
        alias: string;
        constructor(field: DisplayField, alias: string);
        clone(): Aliased;
        get key(): string;
        get name(): string;
        get label(): string;
    }
}
