/**
 * Async Operation Driver
 *
 * Drives async operations returned by sync SDK-KIT methods.
 * This is where ALL the async logic lives - the C++ layer is just a thin bridge.
 *
 * Key responsibilities:
 * - Call resume() in a loop until DONE
 * - When IO is needed, process all pending IO items
 * - Extract and return the final result
 */
import type { NativeSyncOperation, NativeSyncDatabase, NativeConnection, NativeSyncChanges, SyncStats } from '../types';
import type { IoContext } from './ioProcessor';
/**
 * Drive an async operation to completion
 *
 * @param operation - The native operation to drive
 * @param database - The native sync database (for IO queue access)
 * @param context - IO context with auth and URL information
 * @returns Promise that resolves when operation completes
 */
export declare function driveOperation<T = void>(operation: NativeSyncOperation, database: NativeSyncDatabase, context: IoContext): Promise<T>;
/**
 * Helper type for operations that return connections
 */
export declare function driveConnectionOperation(operation: NativeSyncOperation, database: NativeSyncDatabase, context: IoContext): Promise<NativeConnection>;
/**
 * Helper type for operations that return changes
 */
export declare function driveChangesOperation(operation: NativeSyncOperation, database: NativeSyncDatabase, context: IoContext): Promise<NativeSyncChanges | null>;
/**
 * Helper type for operations that return stats
 */
export declare function driveStatsOperation(operation: NativeSyncOperation, database: NativeSyncDatabase, context: IoContext): Promise<SyncStats>;
/**
 * Helper type for operations that return void
 */
export declare function driveVoidOperation(operation: NativeSyncOperation, database: NativeSyncDatabase, context: IoContext): Promise<void>;
//# sourceMappingURL=asyncOperation.d.ts.map