import { IConversationServices } from '../../interface/IConversationServices';
import { IConversationServiceConfig } from '../../interface/IConversationServiceConfig';
import { ILogger } from '../../interface/ILogger';
export declare abstract class ConversationService {
    protected config: IConversationServiceConfig;
    protected requestSchema: any;
    protected responseSchema: any;
    protected logger: ILogger;
    constructor(config: IConversationServiceConfig);
    setServices(services: IConversationServices): void;
    getObligatorySchemas(): Array<string>;
    getOptionalSchemas(): Array<string>;
    private getRequestDir;
    private getResponseDir;
    getServiceName(): string;
    private getCompiledSchema;
    /**
     * @pre ConversationServices.getSchemasOnFS() has already been called
     * @post Compiled json schemas are stored in this.requestSchema and this.responseSchema
     */
    loadSchemas(): Promise<void>;
    validateRequest(request: Record<string, any>): void;
    validateResponse(response: Record<string, any>): void;
    private decodeAjvErrors;
    abstract getResponse(request: Record<string, any>): Promise<any>;
}
