import type { CalendarProjection, GalleryProjection, GanttProjection, GridProjection, KanbanProjection, Viewport } from '@univerjs/core';
import { Disposable } from '@univerjs/core';
export interface IBaseLayout {
    viewport: Viewport;
}
export interface IGridLayout extends IBaseLayout {
    rowHeight: number;
    columnWidths: number[];
}
export interface IKanbanLayout extends IBaseLayout {
    laneWidth: number;
}
export interface ICalendarLayout extends IBaseLayout {
    mode: 'month' | 'week' | 'day';
}
export interface IGanttLayout extends IBaseLayout {
    leftPaneWidth: number;
    timelineWidth: number;
}
export interface IGalleryLayout extends IBaseLayout {
    cardWidth: number;
}
export declare const IBaseLayoutService: import("@wendellhu/redi").IdentifierDecorator<BaseLayoutService>;
export declare class BaseLayoutService extends Disposable {
    layoutGrid(projection: GridProjection, viewport: Viewport): IGridLayout;
    layoutKanban(projection: KanbanProjection, viewport: Viewport): IKanbanLayout;
    layoutCalendar(_projection: CalendarProjection, viewport: Viewport): ICalendarLayout;
    layoutGantt(_projection: GanttProjection, viewport: Viewport): IGanttLayout;
    layoutGallery(_projection: GalleryProjection, viewport: Viewport): IGalleryLayout;
}
