import { FhirClient, IPerson } from '@nsshunt/stsfhirclient';
import { IRunner, WorkerInstance, IRunnerOptions } from '@nsshunt/stsrunnerframework';
export interface IGetAPITokenFromAuthServerUsingScopeOptions {
    clientId: string;
    authClientSecret: string;
    scope: string;
    endPoint: string;
}
export interface ITestCaseFhirBaseOptions extends IRunnerOptions {
    fhirEndpoint: string;
    authEndpoint: string;
    nodeAgentOptions?: {
        keepAlive: boolean;
        maxSockets: number;
        maxTotalSockets: number;
        maxFreeSockets: number;
        timeout: number;
        rejectUnauthorized: boolean;
    };
    authOptions: {
        asoauthapiroot: string;
        asendpoint: string;
        asport: string;
    };
    useSocketClient: boolean;
    socketClientOptions: {
        socketClientCustomPath: string;
        socketClientFhirServerEndpoint: string;
        socketClientName: string;
        socketClientTimeout: number;
    };
}
export declare abstract class TestCaseFhirBase {
    #private;
    constructor(workerInstance: WorkerInstance, runner: IRunner);
    LogErrorMessage: (message: any) => void;
    Debug: (message: any) => void;
    get accesssToken(): string | null;
    set accesssToken(token: string | null);
    get runner(): IRunner;
    get fhirClient(): FhirClient;
    SleepImmediate(): Promise<void>;
    SleepImmediateEx(): Promise<void>;
    SleepImmediateEx2(): Promise<void>;
    ExtractOrigin: (uri: string) => string | null;
    GetAPITokenFromAuthServerUsingScope: (options: IGetAPITokenFromAuthServerUsingScopeOptions, errorCb: (error: Error) => void) => Promise<string>;
    GetAccessToken: () => Promise<string>;
    GetPersonRecord: (prefix: string, index: number) => IPerson;
    StartTestDataLoad: () => Promise<void>;
    PublishTelemetry: () => Promise<void>;
    StartRunner: () => Promise<boolean>;
    StopRunner: () => Promise<boolean>;
    TerminateRunner: () => Promise<boolean>;
    Completed: () => Promise<boolean>;
    PauseRunner: () => Promise<boolean>;
    ResumeRunner: () => Promise<boolean>;
    ResetRunner: () => Promise<boolean>;
    UpdateRunner: () => Promise<boolean>;
}
//# sourceMappingURL=testCaseFhirBase.d.ts.map