import { S3 } from '@aws-sdk/client-s3';
import { EmailHistoryModel } from '../models/email-history.model';
import { MethodAllModel, MethodModel } from '../models/method.model';
import { MonitorManagerFunction } from './monitor.manager';
import { WebSocketManager } from './websocket.manager';
interface SendEmailOptions {
    correlationId?: string;
    meta?: Record<string, any>;
    headers?: Record<string, string>;
    cc?: string | string[];
    waitForCompletion?: boolean;
    waitForCompletionTimeoutMs?: number;
    waitForCompletionPollMs?: number;
}
export declare class AWS {
    private _s3;
    private _s3USEast1;
    constructor();
    create(): AWS;
    private initialize;
    s3(): S3;
    s3USEast1(): S3;
}
export declare class MethodManager {
    private _websocketManager;
    _methods: MethodModel;
    private _mailerSES;
    private _mailerCustom;
    private _aws;
    private _monitorManagerFunction;
    private _isWorkersEnabled;
    private _isWorkerInstance;
    private emailQueue;
    private isEmailProcessing;
    private readonly _emailProcessingDelayMs;
    private _debugcallMethodHits;
    private _debugCallMethodHits;
    private _debugCallMethodCronJobHits;
    private _debugSendQueueHits;
    private _enableDebug;
    private _ready;
    private _readyEmitter;
    private _readyError;
    private _localActiveCounts;
    private _localWaitQueues;
    clientDir: string;
    serverConfig: Record<string, any>;
    constructor();
    static create(websocketManager: WebSocketManager, monitorManagerFunction: MonitorManagerFunction, isWorkersEnabled: any, isWorkerInstance: any): MethodManager;
    private initialize;
    private markReady;
    private markReadyFailure;
    onReady(callback: () => void): () => void;
    private waitForReadyEvent;
    private waitForReadyError;
    private waitForReadyTimeout;
    isReady(): boolean;
    getReadyError(): any;
    waitUntilReady(timeoutMs?: number): Promise<void>;
    getMethod(methodName: string): MethodAllModel;
    methods(method: MethodModel): void;
    private reportMethodError;
    callMethodCron(method: string, ...methodData: any[]): Promise<any>;
    callMethod(methodName: string, ...methodData: any[]): Promise<any>;
    private callMethodInternal;
    private acquireLocalConcurrency;
    private createLocalRelease;
    setupEmailWatcher(): void;
    loadPendingEmails(): Promise<void>;
    tryProcessEmail(): Promise<void>;
    private shouldTrackTextMessageMetric;
    private getTextMessageProvider;
    safeStringify(obj: any): string;
    getCircularReplacer(): (key: any, value: any) => any;
    private finalizeEmailHistoryStorage;
    private tryMergeEmailOccurrence;
    private waitForEmailCompletion;
    sendEmail(sendTo: string, subject: string, text?: string | null, html?: string | null, attachments?: any[] | null, send_from?: string | null, reply_to?: string | null, force_ses?: boolean, local_override?: boolean, options?: SendEmailOptions): Promise<true | EmailHistoryModel>;
    getAWS(): AWS;
    readFile(fileName: any): string;
    readImage(fileName: any): string;
    getEnableDebug(): boolean;
}
export {};
