import type { SyncOperation, SyncResult, ServerAdapter } from '../types.js';
import type { SyncConfig } from './types.js';
import type { RequestEvent } from '@sveltejs/kit';
export declare class ServerSyncEngine<TAdapter extends ServerAdapter = ServerAdapter> {
    private adapter;
    private config;
    private realtimeServer;
    constructor(adapter: TAdapter, config: SyncConfig);
    push(operations: SyncOperation[], userId: string): Promise<SyncResult>;
    pull(lastSync: number, clientId: string, userId: string): Promise<SyncOperation[]>;
    private checkAccess;
    private resolveConflict;
    createRealtimeHandlers(): {
        GET: (event: RequestEvent) => Promise<Response>;
        POST: (event: RequestEvent) => Promise<Response>;
        handle: ({ event, resolve }: {
            event: any;
            resolve: any;
        }) => Promise<any>;
    };
    subscribeToChanges(tables: string[], userId: string, callback: (ops: SyncOperation[]) => void): Promise<() => void>;
}
/**
 * Create server sync engine with realtime handlers
*/
export declare function createServerSync({ adapter, config }: {
    adapter: ServerAdapter;
    config: SyncConfig;
}): {
    sync: ServerSyncEngine<ServerAdapter<any>>;
    syncEngine: ServerSyncEngine<ServerAdapter<any>>;
    GET: (event: RequestEvent) => Promise<Response>;
    POST: (event: RequestEvent) => Promise<Response>;
    handle: ({ event, resolve }: {
        event: any;
        resolve: any;
    }) => Promise<any>;
};
