import { Dimensions } from "../range.js";
import { Row } from "../row.js";
import { Column } from "../column.js";
import { DataValidations } from "../data-validations.js";
import type { RowBreak, ColBreak, PageSetup, HeaderFooter, WorksheetProperties, WorksheetView, WorksheetState, AutoFilter, WorksheetProtection, ConditionalFormattingOptions } from "../types.js";
interface WorksheetWriterOptions {
    id: number;
    name?: string;
    workbook: any;
    useSharedStrings?: boolean;
    properties?: Partial<WorksheetProperties>;
    state?: WorksheetState;
    pageSetup?: Partial<PageSetup>;
    views?: Partial<WorksheetView>[];
    autoFilter?: AutoFilter;
    headerFooter?: Partial<HeaderFooter>;
}
declare class WorksheetWriter {
    id: number;
    name: string;
    state: WorksheetState;
    /** Rows stored while being worked on. Set to null after commit. */
    private _rows;
    /** Column definitions */
    private _columns;
    /** Column keys mapping: key => Column */
    private _keys;
    /** Merged cell ranges */
    private _merges;
    private _sheetRelsWriter;
    private _sheetCommentsWriter;
    private _dimensions;
    private _rowZero;
    private _rowOffset;
    committed: boolean;
    dataValidations: DataValidations;
    /** Shared formulae by address */
    private _formulae;
    private _siFormulae;
    conditionalFormatting: ConditionalFormattingOptions[];
    rowBreaks: RowBreak[];
    colBreaks: ColBreak[];
    properties: Partial<WorksheetProperties> & {
        defaultRowHeight: number;
        dyDescent?: number;
        outlineLevelCol: number;
        outlineLevelRow: number;
    };
    headerFooter: Partial<HeaderFooter>;
    pageSetup: Partial<PageSetup> & {
        margins: PageSetup["margins"];
    };
    useSharedStrings: boolean;
    private _workbook;
    hasComments: boolean;
    private _views;
    autoFilter: AutoFilter | null;
    private _media;
    sheetProtection: {
        sheet?: boolean;
        algorithmName?: string;
        saltValue?: string;
        spinCount?: number;
        hashValue?: string;
        [key: string]: unknown;
    } | null;
    private _stream?;
    startedData: boolean;
    private _background?;
    private _headerRowCount?;
    /** Relationship Id - assigned by WorkbookWriter */
    rId?: string;
    constructor(options: WorksheetWriterOptions);
    get workbook(): any;
    get stream(): any;
    destroy(): void;
    commit(): void;
    get dimensions(): Dimensions;
    get views(): Partial<WorksheetView>[];
    get columns(): Column[] | null;
    set columns(value: Partial<Column>[]);
    getColumnKey(key: string): Column | undefined;
    setColumnKey(key: string, value: Column): void;
    deleteColumnKey(key: string): void;
    eachColumnKey(f: (column: Column, key: string) => void): void;
    getColumn(c: string | number): Column;
    private get _nextRow();
    eachRow(options: {
        includeEmpty?: boolean;
    } | ((row: Row, rowNumber: number) => void), iteratee?: (row: Row, rowNumber: number) => void): void;
    private _commitRow;
    get lastRow(): Row | undefined;
    findRow(rowNumber: number): Row | undefined;
    getRow(rowNumber: number): Row;
    addRow(value: any[] | Record<string, any>): Row;
    findCell(r: string | number, c?: number): any;
    getCell(r: string | number, c?: number): any;
    mergeCells(...cells: (string | number)[]): void;
    addConditionalFormatting(cf: ConditionalFormattingOptions): void;
    removeConditionalFormatting(filter?: number | ((cf: ConditionalFormattingOptions) => boolean)): void;
    addBackgroundImage(imageId: number): void;
    getBackgroundImageId(): number | undefined;
    protect(password?: string, options?: Partial<WorksheetProtection>): Promise<void>;
    unprotect(): void;
    private _write;
    private _writeSheetProperties;
    private _writeSheetFormatProperties;
    private _writeOpenWorksheet;
    private _writeColumns;
    private _writeOpenSheetData;
    private _writeRow;
    private _writeCloseSheetData;
    private _writeMergeCells;
    private _writeHyperlinks;
    private _writeConditionalFormatting;
    private _writeRowBreaks;
    private _writeColBreaks;
    private _writeDataValidations;
    private _writeSheetProtection;
    private _writePageMargins;
    private _writePageSetup;
    private _writeHeaderFooter;
    private _writeAutoFilter;
    private _writeBackground;
    private _writeLegacyData;
    private _writeDimensions;
    private _writeCloseWorksheet;
}
export { WorksheetWriter };
