import { Cell, NestCell, RecordCell, ArrayCell, BooleanCell, DateCell, JSONCell, NullCell, NumberCell, RepeatedRecordCell, StringCell, TimestampCell, TimeCell, RecordOrRepeatedRecordCell, CellValue } from '.';
import { Field } from '../fields';
import { DrillEntry } from '../types';
import type * as Malloy from '@malloydata/malloy-interfaces';
export declare abstract class CellBase {
    readonly cell: Malloy.Cell;
    readonly field: Field;
    readonly parent: NestCell | undefined;
    constructor(cell: Malloy.Cell, field: Field, parent: NestCell | undefined);
    get literalValue(): Malloy.LiteralValue | undefined;
    abstract get value(): CellValue;
    isNull(): this is NullCell;
    isArray(): this is ArrayCell;
    isRecord(): this is RecordCell;
    isRepeatedRecord(): this is RepeatedRecordCell;
    isRecordOrRepeatedRecord(): this is RecordOrRepeatedRecordCell;
    isNest(): this is NestCell;
    isNumber(): this is NumberCell;
    isDate(): this is DateCell;
    isTime(): this is TimeCell;
    isJSON(): this is JSONCell;
    isString(): this is StringCell;
    isTimestamp(): this is TimestampCell;
    isBoolean(): this is BooleanCell;
    asCell(): Cell;
    root(): Cell;
    private getPathInfo;
    getParentRecord(levelsUp: number): RecordCell;
    getRelativeCell(relativeDataPath: string): Cell | undefined;
    cellAt(path: string[] | string): Cell;
    cellAtPath(path: string[]): Cell;
    compareTo(_other: Cell): number;
    canDrill(): boolean;
    getStableDrillQuery(): Malloy.Query | undefined;
    getStableDrillClauses(): Malloy.DrillOperation[] | undefined;
    getDrillExpressions(): string[];
    getDrillEntries(): DrillEntry[];
    getStableDrillQueryMalloy(): string | undefined;
    getDrillQueryMalloy(): string;
}
