import { DurableObject } from "cloudflare:workers";
import { WSSharedDoc } from "./ws-shared-doc";
import { YDurableObjectPersistence, YDurableObjectPersistenceOptions } from "./persistence";
export type YDurableObjectOptions = YDurableObjectPersistenceOptions;
export declare class YDurableObject<T = any> extends DurableObject<T> {
    readonly ctx: DurableObjectState;
    readonly env: T;
    readonly doc: WSSharedDoc<WebSocket>;
    readonly persistence: YDurableObjectPersistence;
    constructor(ctx: DurableObjectState, env: T, options?: YDurableObjectOptions);
    fetch(_request: Request): Promise<Response>;
    webSocketMessage(ws: WebSocket, message: string | ArrayBuffer): Promise<void>;
    webSocketError(ws: WebSocket): Promise<void>;
    webSocketClose(ws: WebSocket): Promise<void>;
    getYDoc(): Promise<import("yjs").Doc>;
    onYDocUpdate(): void | Promise<void>;
    onAwarenessUpdate(): void | Promise<void>;
    private connect;
    private disconnect;
}
export { YDurableObjectPersistence, WSSharedDoc };
