import { HttpClient } from '@sisense/sdk-rest-client'; export declare function triggerFullBuild(datamodelOid: string, httpClient?: HttpClient): Promise<{ buildOid: string; }>; export interface WaitForSchemaResult { ready: boolean; tablesFound: number; relationsFound: number; } /** * Block until the model's schema reflects all expected tables and relations (or * the timeout elapses). Returns `ready: false` on timeout so the caller can * still attempt the build rather than hang forever. */ export declare function waitForSchemaPersisted(datamodelOid: string, expected: { tableOids: string[]; relationOids: string[]; }, options?: { intervalMs?: number; timeoutMs?: number; httpClient?: HttpClient; onUpdate?: (detail: string) => void; }): Promise; export interface PollBuildResult { status: 'done' | 'failed' | 'timeout'; durationMs: number; } export declare function pollBuild(buildOid: string, options?: { intervalMs?: number; timeoutMs?: number; /** * Delay before the FIRST status check. POST /builds returns an oid before * the build row is queryable — GET /builds/{oid} 400s with "BE#983754 Data * source not found for build id" for the first few seconds. Wait this long * before polling so the first request lands after the row exists. */ initialDelayMs?: number; onUpdate?: (status: string) => void; httpClient?: HttpClient; }): Promise;