import { ColumnDataSchemaModel } from '@revolist/revogrid';
import { ColumnRegular } from '@revolist/revogrid';
import { EditCell } from '@revolist/revogrid';
import { EditorBase } from '@revolist/revogrid';
import { HyperFunc } from '@revolist/revogrid';
import { VNode } from '@revolist/revogrid';

export declare class ColumnEditor implements EditorBase {
    private data;
    private saveCallback;
    private calendar;
    private revoFloat;
    constructor(data: DateConfig, saveCallback: (value: any, preventFocus?: boolean) => void);
    element?: HTMLElement | null;
    editCell?: EditCell;
    componentDidRender(): void;
    private isDate;
    getValue(): string;
    disconnectedCallback(): void;
    render(h: HyperFunc<VNode>): VNode;
}

export declare const ColumnRenderer: (h: HyperFunc<VNode>, { value }: ColumnDataSchemaModel) => VNode[];

declare class ColumnType {
    constructor();
    readonly editor: typeof ColumnEditor;
    cellTemplate: (h: HyperFunc<VNode>, { value }: ColumnDataSchemaModel) => VNode[];
}
export default ColumnType;

declare interface DateConfig extends ColumnDataSchemaModel {
    column: ColumnRegular & {
        valueAsDate?: boolean;
        appendTo?: 'body' | Element;
    };
}

export { }
