import * as OT from "./ottypes";
import * as OTA from "./otarray";
import * as OTM from "./otmap";
import * as OTC from "./otcounter";
export declare const clockInitialValue: number;
export declare const clockTerminateValue: number;
export declare const clockRandomizeValue: number;
export declare const clockFailureValue: number;
export declare const clockInitializeValue: number;
export declare const clockUndoValue: number;
export declare const clockSeenValue: number;
export declare class OTCompositeResource extends OT.OTResourceBase {
    resourceID: string;
    clientID: string;
    clock: number;
    clientSequenceNo: number;
    private static typeRegistry;
    constructor(rid: string, cid: string);
    static registerType(underlyingType: string, factory: (resourceName: string) => OT.OTResourceBase): void;
    findResource(rname: string, utype?: string, bConstruct?: boolean): OT.IOTResource;
    map(rid: string): OTM.OTMapResource;
    array(rid: string): OTA.OTArrayResource;
    counter(rid: string): OTC.OTCounterResource;
    garbageCollect(map: any): boolean;
    isEmpty(): boolean;
    copy(): OTCompositeResource;
    effectivelyEqual(rhs: OTCompositeResource): boolean;
    transform(rhs: OTCompositeResource, bPriorIsService: boolean): void;
    compose(rhs: OTCompositeResource): void;
    apply(runningValue: any): any;
    toValue(): any;
    minimize(): void;
    private static constructResource(rname, utype);
    static constructFromObject(o: any): OTCompositeResource;
    toJSON(): any;
}
