import { Union } from '@fable-org/fable-library-js/Types.js';
import { TypeInfo } from '@fable-org/fable-library-js/Reflection.js';
import { float64, uint32, int32 } from '@fable-org/fable-library-js/Int32.js';
import { FsAddress } from '../FsAddress.fs.js';
import { uint64, int64 } from '@fable-org/fable-library-js/BigInt.js';
import { decimal } from '@fable-org/fable-library-js/Decimal.js';
export type DataType_$union = DataType<0> | DataType<1> | DataType<2> | DataType<3> | DataType<4>;
export type DataType_$cases = {
    0: ["String", []];
    1: ["Boolean", []];
    2: ["Number", []];
    3: ["Date", []];
    4: ["Empty", []];
};
export declare function DataType_String(): DataType<0>;
export declare function DataType_Boolean(): DataType<1>;
export declare function DataType_Number(): DataType<2>;
export declare function DataType_Date(): DataType<3>;
export declare function DataType_Empty(): DataType<4>;
export declare class DataType<Tag extends keyof DataType_$cases> extends Union<Tag, DataType_$cases[Tag][0]> {
    readonly tag: Tag;
    readonly fields: DataType_$cases[Tag][1];
    constructor(tag: Tag, fields: DataType_$cases[Tag][1]);
    cases(): string[];
}
export declare function DataType_$reflection(): TypeInfo;
export declare function FsCellAux_boolConverter(bool: boolean): string;
export declare class FsCell {
    _cellValue: any;
    _dataType: DataType_$union;
    _comment: string;
    _hyperlink: string;
    _richText: string;
    _formulaA1: string;
    _formulaR1C1: string;
    _rowIndex: int32;
    _columnIndex: int32;
    constructor(value: any, dataType?: DataType_$union, address?: FsAddress);
    get Value(): any;
    set Value(value: any);
    get DataType(): DataType_$union;
    set DataType(dataType: DataType_$union);
    get ColumnNumber(): int32;
    set ColumnNumber(colI: int32);
    get RowNumber(): int32;
    set RowNumber(rowI: int32);
    get Address(): FsAddress;
    set Address(address: FsAddress);
    static create<$b>(rowNumber: int32, colNumber: int32, value: $b): FsCell;
    static createEmpty(): FsCell;
    static createWithAdress<$a>(adress: FsAddress, value: $a): FsCell;
    static createEmptyWithAdress(adress: FsAddress): FsCell;
    static createWithDataType(dataType: DataType_$union, rowNumber: int32, colNumber: int32, value: any): FsCell;
    toString(): string;
    CopyFrom(otherCell: FsCell): void;
    CopyTo(target: FsCell): void;
    static copyFromTo(sourceCell: FsCell, targetCell: FsCell): FsCell;
    Copy(): FsCell;
    static copy(cell: FsCell): FsCell;
    ValueAsString(): string;
    static getValueAsString(cell: FsCell): string;
    ValueAsBool(): boolean;
    static getValueAsBool(cell: FsCell): boolean;
    ValueAsFloat(): float64;
    static getValueAsFloat(cell: FsCell): float64;
    ValueAsInt(): int32;
    static getValueAsInt(cell: FsCell): int32;
    ValueAsUInt(): uint32;
    static getValueAsUInt(cell: FsCell): uint32;
    ValueAsLong(): int64;
    static getValueAsLong(cell: FsCell): int64;
    ValueAsULong(): uint64;
    static getValueAsULong(cell: FsCell): uint64;
    ValueAsDouble(): float64;
    static getValueAsDouble(cell: FsCell): float64;
    ValueAsDecimal(): decimal;
    static getValueAsDecimal(cell: FsCell): decimal;
    ValueAsDateTime(): Date;
    static getValueAsDateTime(cell: FsCell): Date;
    ValueAsGuid(): string;
    static getValueAsGuid(cell: FsCell): string;
    ValueAsChar(): string;
    static getValueAsChar(cell: FsCell): string;
    SetValueAs<T>(value: any): void;
    static setValueAs<T>(value: any, cell: FsCell): FsCell;
    StructurallyEquals(other: FsCell): boolean;
}
export declare function FsCell_$reflection(): TypeInfo;
export declare function FsCell_$ctor_2BEF9BB0(value: any, dataType?: DataType_$union, address?: FsAddress): FsCell;
//# sourceMappingURL=FsCell.fs.d.ts.map