import { AuthConfig, ServerType } from '@sasjs/utils/types';
import { ExtraResponseAttributes } from '@sasjs/utils/types';
export type ExecuteFunction = () => Promise<any>;
export interface JobExecutor {
    execute: (sasJob: string, data: any, config: any, loginRequiredCallback?: any, authConfig?: AuthConfig, extraResponseAttributes?: ExtraResponseAttributes[]) => Promise<any>;
    resendWaitingRequests: () => Promise<void>;
}
export declare abstract class BaseJobExecutor implements JobExecutor {
    protected serverUrl: string;
    protected serverType: ServerType;
    constructor(serverUrl: string, serverType: ServerType);
    private waitingRequests;
    abstract execute(sasJob: string, data: any, config: any, loginRequiredCallback?: any, authConfig?: AuthConfig | undefined, extraResponseAttributes?: ExtraResponseAttributes[]): Promise<any>;
    resendWaitingRequests: () => Promise<void>;
    protected appendWaitingRequest(request: ExecuteFunction): void;
    protected getRequestParams(config: any): any;
}
