import { IMap } from '@fable-org/fable-library-js/Util.js';
import { int32 } from '@fable-org/fable-library-js/Int32.js';
import { CompositeCell_$union } from './CompositeCell.fs.js';
import { ArcTableValues, ColumnValueRefs_$union } from './ArcTableAux.fs.js';
import { CompositeHeader_$union } from './CompositeHeader.fs.js';
import { Option } from '@fable-org/fable-library-js/Option.js';
import { CompositeColumn } from './CompositeColumn.fs.js';
import { OntologyAnnotation } from '../OntologyAnnotation.fs.js';
import { TypeInfo } from '@fable-org/fable-library-js/Reflection.js';
export type TableJoinOptions = "headers" | "withUnit" | "withValues";
export declare class ArcTable {
    _values: ArcTableValues;
    _name: string;
    _headers: CompositeHeader_$union[];
    constructor(name: string, headers?: CompositeHeader_$union[], columns?: CompositeCell_$union[][]);
    get ValueMap(): IMap<int32, CompositeCell_$union>;
    set ValueMap(valueMap: IMap<int32, CompositeCell_$union>);
    get ColumnRefs(): IMap<int32, ColumnValueRefs_$union>;
    set ColumnRefs(internalColumnRefs: IMap<int32, ColumnValueRefs_$union>);
    get Headers(): CompositeHeader_$union[];
    set Headers(newHeaders: CompositeHeader_$union[]);
    get Values(): ArcTableValues;
    get Name(): string;
    set Name(newName: string);
    static create(name: string, headers: CompositeHeader_$union[], values: CompositeCell_$union[][]): ArcTable;
    static init(name: string): ArcTable;
    static fromArcTableValues(name: string, headers: CompositeHeader_$union[], values: ArcTableValues): ArcTable;
    static createFromRows(name: string, headers: CompositeHeader_$union[], rows: CompositeCell_$union[][]): ArcTable;
    Validate(raiseException?: boolean): boolean;
    static validate(raiseException?: boolean): ((arg0: ArcTable) => boolean);
    get ColumnCount(): int32;
    static columnCount(table: ArcTable): int32;
    get RowCount(): int32;
    set RowCount(newRowCount: int32);
    static rowCount(table: ArcTable): int32;
    static setRowCount(newRowCount: int32): ((arg0: ArcTable) => ArcTable);
    get Columns(): CompositeColumn[];
    Copy(): ArcTable;
    TryGetCellAt(column: int32, row: int32): Option<CompositeCell_$union>;
    static tryGetCellAt(column: int32, row: int32): ((arg0: ArcTable) => Option<CompositeCell_$union>);
    GetCellAt(column: int32, row: int32): CompositeCell_$union;
    static getCellAt(column: int32, row: int32): ((arg0: ArcTable) => CompositeCell_$union);
    IterColumns(action: ((arg0: CompositeColumn) => void)): void;
    static iterColumns(action: ((arg0: CompositeColumn) => void)): ((arg0: ArcTable) => ArcTable);
    IteriColumns(action: ((arg0: int32, arg1: CompositeColumn) => void)): void;
    static iteriColumns(action: ((arg0: int32, arg1: CompositeColumn) => void)): ((arg0: ArcTable) => ArcTable);
    UpdateCellAt(columnIndex: int32, rowIndex: int32, c: CompositeCell_$union, skipValidation?: boolean): void;
    static updateCellAt(columnIndex: int32, rowIndex: int32, cell: CompositeCell_$union, skipValidation?: boolean): ((arg0: ArcTable) => ArcTable);
    SetCellAt(columnIndex: int32, rowIndex: int32, c: CompositeCell_$union, skipValidation?: boolean): void;
    static setCellAt(columnIndex: int32, rowIndex: int32, cell: CompositeCell_$union, skipValidation?: boolean): ((arg0: ArcTable) => ArcTable);
    UpdateCellsBy(f: ((arg0: int32, arg1: int32, arg2: CompositeCell_$union) => CompositeCell_$union), skipValidation?: boolean): void;
    static updateCellsBy(f: ((arg0: int32, arg1: int32, arg2: CompositeCell_$union) => CompositeCell_$union), skipValidation?: boolean): ((arg0: ArcTable) => void);
    UpdateCellBy(columnIndex: int32, rowIndex: int32, f: ((arg0: CompositeCell_$union) => CompositeCell_$union), skipValidation?: boolean): void;
    static updateCellBy(columnIndex: int32, rowIndex: int32, f: ((arg0: CompositeCell_$union) => CompositeCell_$union), skipValidation?: boolean): ((arg0: ArcTable) => void);
    UpdateHeader(index: int32, newHeader: CompositeHeader_$union, forceConvertCells?: boolean): void;
    static updateHeader(index: int32, header: CompositeHeader_$union): ((arg0: ArcTable) => ArcTable);
    AddColumn(header: CompositeHeader_$union, cells?: CompositeCell_$union[], index?: int32, forceReplace?: boolean): void;
    static addColumn(header: CompositeHeader_$union, cells?: CompositeCell_$union[], index?: int32, forceReplace?: boolean): ((arg0: ArcTable) => ArcTable);
    AddColumnFill(header: CompositeHeader_$union, cell: CompositeCell_$union, index?: int32, forceReplace?: boolean): void;
    static addColumnFill(header: CompositeHeader_$union, cell: CompositeCell_$union, index?: int32, forceReplace?: boolean): ((arg0: ArcTable) => ArcTable);
    UpdateColumn(columnIndex: int32, header: CompositeHeader_$union, cells?: CompositeCell_$union[]): void;
    static updateColumn(columnIndex: int32, header: CompositeHeader_$union, cells?: CompositeCell_$union[]): ((arg0: ArcTable) => ArcTable);
    InsertColumn(index: int32, header: CompositeHeader_$union, cells?: CompositeCell_$union[]): void;
    static insertColumn(index: int32, header: CompositeHeader_$union, cells?: CompositeCell_$union[]): ((arg0: ArcTable) => ArcTable);
    AppendColumn(header: CompositeHeader_$union, cells?: CompositeCell_$union[]): void;
    static appendColumn(header: CompositeHeader_$union, cells?: CompositeCell_$union[]): ((arg0: ArcTable) => ArcTable);
    AddColumns(columns: Iterable<CompositeColumn>, index?: int32, forceReplace?: boolean): void;
    static addColumns(columns: CompositeColumn[], index?: int32): ((arg0: ArcTable) => ArcTable);
    RemoveColumn(index: int32): void;
    static removeColumn(index: int32): ((arg0: ArcTable) => ArcTable);
    RemoveColumns(indexArr: int32[]): void;
    static removeColumns(indexArr: int32[]): ((arg0: ArcTable) => ArcTable);
    GetColumn(columnIndex: int32, failOnMissingCell?: boolean): CompositeColumn;
    static getColumn(index: int32, failOnMissingCell?: boolean): ((arg0: ArcTable) => CompositeColumn);
    TryGetColumnByHeader(header: CompositeHeader_$union, failOnMissingCell?: boolean): Option<CompositeColumn>;
    static tryGetColumnByHeader(header: CompositeHeader_$union, failOnMissingCell?: boolean): ((arg0: ArcTable) => Option<CompositeColumn>);
    TryGetColumnByHeaderBy(headerPredicate: ((arg0: CompositeHeader_$union) => boolean), failOnMissingCell?: boolean): Option<CompositeColumn>;
    static tryGetColumnByHeaderBy(headerPredicate: ((arg0: CompositeHeader_$union) => boolean), failOnMissingCell?: boolean): ((arg0: ArcTable) => Option<CompositeColumn>);
    GetColumnByHeader(header: CompositeHeader_$union, failOnMissingCell?: boolean): CompositeColumn;
    static getColumnByHeader(header: CompositeHeader_$union, failOnMissingCell?: boolean): ((arg0: ArcTable) => CompositeColumn);
    TryGetInputColumn(): Option<CompositeColumn>;
    static tryGetInputColumn(): ((arg0: ArcTable) => Option<CompositeColumn>);
    GetInputColumn(): CompositeColumn;
    static getInputColumn(): ((arg0: ArcTable) => CompositeColumn);
    TryGetOutputColumn(): Option<CompositeColumn>;
    static tryGetOutputColumn(): ((arg0: ArcTable) => Option<CompositeColumn>);
    GetOutputColumn(): CompositeColumn;
    static getOutputColumn(): ((arg0: ArcTable) => CompositeColumn);
    MoveColumn(startCol: int32, endCol: int32): void;
    static moveColumn(startCol: int32, endCol: int32): ((arg0: ArcTable) => ArcTable);
    AddRow(cells?: CompositeCell_$union[], index?: int32): void;
    static addRow(cells?: CompositeCell_$union[], index?: int32): ((arg0: ArcTable) => ArcTable);
    UpdateRow(rowIndex: int32, cells: CompositeCell_$union[]): void;
    static updateRow(rowIndex: int32, cells: CompositeCell_$union[]): ((arg0: ArcTable) => ArcTable);
    AppendRow(cells?: CompositeCell_$union[]): void;
    static appendRow(cells?: CompositeCell_$union[]): ((arg0: ArcTable) => ArcTable);
    InsertRow(index: int32, cells?: CompositeCell_$union[]): void;
    static insertRow(index: int32, cells?: CompositeCell_$union[]): ((arg0: ArcTable) => ArcTable);
    AddRows(rows: CompositeCell_$union[][], index?: int32): void;
    static addRows(rows: CompositeCell_$union[][], index?: int32): ((arg0: ArcTable) => ArcTable);
    AddRowsEmpty(rowCount: int32, index?: int32): void;
    static addRowsEmpty(rowCount: int32, index?: int32): ((arg0: ArcTable) => ArcTable);
    RemoveRow(index: int32): void;
    static removeRow(index: int32): ((arg0: ArcTable) => ArcTable);
    RemoveRows(indexArr: int32[]): void;
    static removeRows(indexArr: int32[]): ((arg0: ArcTable) => ArcTable);
    GetRow(rowIndex: int32, SkipValidation?: boolean): CompositeCell_$union[];
    static getRow(index: int32): ((arg0: ArcTable) => CompositeCell_$union[]);
    Join(table: ArcTable, index?: int32, joinOptions?: TableJoinOptions, forceReplace?: boolean): void;
    static join(table: ArcTable, index?: int32, joinOptions?: TableJoinOptions, forceReplace?: boolean): ((arg0: ArcTable) => ArcTable);
    AddProtocolTypeColumn(types?: OntologyAnnotation[], index?: int32, forceReplace?: boolean): void;
    AddProtocolVersionColumn(versions?: string[], index?: int32, forceReplace?: boolean): void;
    AddProtocolUriColumn(uris?: string[], index?: int32, forceReplace?: boolean): void;
    AddProtocolDescriptionColumn(descriptions?: string[], index?: int32, forceReplace?: boolean): void;
    AddProtocolNameColumn(names?: string[], index?: int32, forceReplace?: boolean): void;
    GetProtocolTypeColumn(): CompositeColumn;
    GetProtocolVersionColumn(): CompositeColumn;
    GetProtocolUriColumn(): CompositeColumn;
    GetProtocolDescriptionColumn(): CompositeColumn;
    GetProtocolNameColumn(): CompositeColumn;
    TryGetProtocolNameColumn(): Option<CompositeColumn>;
    GetComponentColumns(): CompositeColumn[];
    RescanValueMap(): void;
    static SplitByColumnValues(columnIndex: int32): ((arg0: ArcTable) => ArcTable[]);
    static SplitByColumnValuesByHeader(header: CompositeHeader_$union): ((arg0: ArcTable) => ArcTable[]);
    static get SplitByProtocolREF(): ((arg0: ArcTable) => ArcTable[]);
    static updateReferenceByAnnotationTable(refTable: ArcTable, annotationTable: ArcTable): ArcTable;
    static append(table1: ArcTable, table2: ArcTable): ArcTable;
    toString(): string;
    StructurallyEquals(other: ArcTable): boolean;
    ReferenceEquals(other: ArcTable): boolean;
    Equals(other: any): boolean;
    GetHashCode(): int32;
}
export declare function ArcTable_$reflection(): TypeInfo;
export declare function ArcTable_$ctor_2D310C9B(name: string, headers?: CompositeHeader_$union[], columns?: CompositeCell_$union[][]): ArcTable;
//# sourceMappingURL=ArcTable.fs.d.ts.map