import { RemoveListener, TopLeft } from "@sheetxl/common";
import { SerializableProperties } from "../primitives";
import { ListenerOptions, Listener, ListenerEmitter } from "../listener";
import { AdjustedColor } from "../color";
import { IDrawingModel, IDrawingContainerView } from "../drawing";
import { ISheetModel } from "./ISheetModel";
import { HeaderTextStyle, ISheetViewListener, IUpdatableSheetView, ISheetView, SheetViewEvent, CellSelection, FreezePanes } from "./ISheetView";
/**
 * Default Sheet View
 */
export declare class SheetView implements IUpdatableSheetView, ISheetView, IDrawingContainerView<ISheetView> {
    private _state;
    private _sheet;
    private _listeners;
    protected _emitter: ListenerEmitter;
    constructor(sheet: ISheetModel, json?: SerializableProperties<ISheetView>);
    /**
     * Notify when the drawing information changes.
     */
    addEventListener(type: string, listener: Listener<SheetViewEvent>, options?: ListenerOptions): RemoveListener;
    set topLeft(topLeft: TopLeft);
    get topLeft(): TopLeft;
    set selection(selection: CellSelection);
    _mergeSelection(selection: CellSelection): CellSelection;
    get selection(): CellSelection;
    /**
     * Returns the freeze panes. This will never return null.
     */
    get freezePanes(): Partial<FreezePanes> | null;
    set freezePanes(freezePanes: Partial<FreezePanes> | null);
    _mergeFreezePanes(freezePanes: Partial<FreezePanes>): Partial<FreezePanes>;
    get showRowHeaders(): boolean;
    set showRowHeaders(newValue: boolean);
    get showColumnHeaders(): boolean;
    set showColumnHeaders(newValue: boolean);
    get showRowGridlines(): boolean;
    set showRowGridlines(newValue: boolean);
    get showColumnGridlines(): boolean;
    set showColumnGridlines(newValue: boolean);
    get rowHeaderStyle(): HeaderTextStyle;
    set rowHeaderStyle(newValue: HeaderTextStyle);
    get columnHeaderStyle(): HeaderTextStyle;
    set columnHeaderStyle(newValue: HeaderTextStyle);
    get zoomScale(): number;
    set zoomScale(newValue: number);
    get showFormulas(): boolean;
    set showFormulas(newValue: boolean);
    get showZeros(): boolean;
    set showZeros(newValue: boolean);
    get gridLineColor(): AdjustedColor | null;
    set gridLineColor(newValue: AdjustedColor | null);
    get drawingSelection(): readonly IDrawingModel[] | null;
    set drawingSelection(newValue: readonly IDrawingModel[] | null);
    selectDrawings(drawings: IDrawingModel[], addToSelection?: boolean): void;
    unselectDrawings(drawings: IDrawingModel[]): void;
    notifyDrawingSelectionChange(update?: readonly IDrawingModel[] | undefined): void;
    notifySelectionChange(update?: CellSelection | undefined): void;
    notifyTopLeftChange(update?: Partial<TopLeft> | undefined): void;
    notifyFreezeSplitChange(update?: FreezePanes | undefined): void;
    notifyListeners(update?: ISheetView | undefined): void;
    addListener(listener: ISheetViewListener): RemoveListener;
    toJSON(): SerializableProperties<ISheetView> | null;
    fromJSON(json: SerializableProperties<ISheetView>): void;
    clear(notify?: boolean): void;
    update(view: Partial<ISheetView>): void;
    get isISheetView(): true;
}
export default SheetView;
//# sourceMappingURL=SheetView.d.ts.map