import { OntologyAnnotation } from '../OntologyAnnotation.fs.js';
import { Data } from '../Data.fs.js';
import { CompositeHeader_$union } from './CompositeHeader.fs.js';
import { Union } from '@fable-org/fable-library-js/Types.js';
import { TypeInfo } from '@fable-org/fable-library-js/Reflection.js';
export type CompositeCell_$union = CompositeCell<0> | CompositeCell<1> | CompositeCell<2> | CompositeCell<3>;
export type CompositeCell_$cases = {
    0: ["Term", [OntologyAnnotation]];
    1: ["FreeText", [string]];
    2: ["Unitized", [string, OntologyAnnotation]];
    3: ["Data", [Data]];
};
export declare function CompositeCell_Term(Item: OntologyAnnotation): CompositeCell<0>;
export declare function CompositeCell_FreeText(Item: string): CompositeCell<1>;
export declare function CompositeCell_Unitized(Item1: string, Item2: OntologyAnnotation): CompositeCell<2>;
export declare function CompositeCell_Data(Item: Data): CompositeCell<3>;
export declare class CompositeCell<Tag extends keyof CompositeCell_$cases> extends Union<Tag, CompositeCell_$cases[Tag][0]> {
    readonly tag: Tag;
    readonly fields: CompositeCell_$cases[Tag][1];
    constructor(tag: Tag, fields: CompositeCell_$cases[Tag][1]);
    cases(): string[];
    get isUnitized(): boolean;
    get isTerm(): boolean;
    get isFreeText(): boolean;
    get isData(): boolean;
    GetEmptyCell(): CompositeCell_$union;
    GetContent(): string[];
    ToUnitizedCell(): CompositeCell_$union;
    ToTermCell(): CompositeCell_$union;
    ToFreeTextCell(): CompositeCell_$union;
    ToDataCell(): CompositeCell_$union;
    get AsUnitized(): [string, OntologyAnnotation];
    get AsTerm(): OntologyAnnotation;
    get AsFreeText(): string;
    get AsData(): Data;
    static createTerm(oa: OntologyAnnotation): CompositeCell_$union;
    static createTermFromString(name?: string, tsr?: string, tan?: string): CompositeCell_$union;
    static createUnitized(value: string, oa?: OntologyAnnotation): CompositeCell_$union;
    static createUnitizedFromString(value: string, name?: string, tsr?: string, tan?: string): CompositeCell_$union;
    static createFreeText(value: string): CompositeCell_$union;
    static createData(d: Data): CompositeCell_$union;
    static createDataFromString(value: string, format?: string, selectorFormat?: string): CompositeCell_$union;
    static get emptyTerm(): CompositeCell_$union;
    static get emptyFreeText(): CompositeCell_$union;
    static get emptyUnitized(): CompositeCell_$union;
    static get emptyData(): CompositeCell_$union;
    UpdateWithOA(oa: OntologyAnnotation): CompositeCell_$union;
    static updateWithOA(oa: OntologyAnnotation, cell: CompositeCell_$union): CompositeCell_$union;
    toString(): string;
    Copy(): CompositeCell_$union;
    ValidateAgainstHeader(header: CompositeHeader_$union, raiseException?: boolean): boolean;
    static term(oa: OntologyAnnotation): CompositeCell_$union;
    static freeText(s: string): CompositeCell_$union;
    static unitized(v: string, oa: OntologyAnnotation): CompositeCell_$union;
    static data(d: Data): CompositeCell_$union;
}
export declare function CompositeCell_$reflection(): TypeInfo;
//# sourceMappingURL=CompositeCell.fs.d.ts.map