import type { GridProjection, IFieldSnapshot } from '@univerjs/core';
import type { CSSProperties } from 'react';
import type { IBaseCellEditorOption } from '../../components/BaseCellEditors';
import type { IBasePeopleOption } from '../../components/panels/field-config/FieldConfigPanel';
import type { IBaseVirtualRecordState } from '../../services/base-ui-state.service';
interface IBaseActiveEditorHostRect {
    left: number;
    top: number;
    width: number;
    height: number;
}
export interface IBaseInlineLiveCommitScheduler {
    schedule: (commit: () => unknown) => void;
    flush: () => boolean;
    cancel: () => void;
}
export declare function createBaseInlineLiveCommitScheduler(delayMs?: number): IBaseInlineLiveCommitScheduler;
export declare function restoreBaseCanvasKeyboardFocus(): void;
export declare function isBaseActiveCellEditorHostOrFloatingTarget(event: globalThis.MouseEvent, activeEditor: Element | null): boolean;
export declare function isBaseInlineEditorFloatingTarget(target: EventTarget | null): boolean;
export declare function RenderBaseActiveCellEditor(): import("react").JSX.Element | null;
export declare function getActiveGridCellEditorRect(projection: GridProjection, recordId: string, fieldId: string, scrollState: {
    x: number;
    y: number;
} | undefined, rowHeight: number, collapsedGroupPaths?: ReadonlySet<string>, options?: {
    virtualRecord?: Pick<IBaseVirtualRecordState, 'actualLogicalY' | 'sourceLogicalY'>;
    hostHeight?: number;
}): {
    left: number;
    top: number;
    width: number;
    height: number;
} | null;
export declare function baseActiveEditorHostRectsEqual(left: IBaseActiveEditorHostRect, right: IBaseActiveEditorHostRect): boolean;
export declare function getBaseActiveCellEditorStyle(field: Pick<IFieldSnapshot, 'type'>, rect: {
    top: number;
    height: number;
}, editorLeft: number, editorWidth: number, hostWidth?: number, hostHeight?: number, value?: unknown): CSSProperties;
export declare function shouldUseBaseActiveCellEditorPopup(field: Pick<IFieldSnapshot, 'type'>): boolean;
export declare function resolveInlineEditorOptions(field: IFieldSnapshot, personOptions?: IBasePeopleOption[], groupOptions?: IBasePeopleOption[], value?: unknown): IBaseCellEditorOption[];
export {};
