import { AsynchronousResponseBody } from '../generated/models/AsynchronousResponseBody';
import { AsynchronousJobStatus } from '../generated/models/AsynchronousJobStatus';
/**
 * Waits for an asynchronous job to complete. This function will poll the server (based on the implementation of
 * getAsyncResult) until the job is no longer in the PROCESSING state.
 * @param getAsyncResult - A function that returns a promise that resolves to the current status of the job, or the job
 * result. This function should be implemented to call the server using the service-specific API (i.e. this function
 * should <strong>not</strong> call GET /asynchronous/job/{jobId}).
 * @param options
 * @throws SynapseClientError if the job fails
 */
export declare function waitForAsyncResult<T extends AsynchronousResponseBody | AsynchronousJobStatus>(getAsyncResult: () => Promise<T>, options?: {
    onCurrentStatusRetrieved: (response: T) => void;
}): Promise<T>;
