import { BaseConnectorConfig } from '../types';
import { FilesSDKInterface } from './files.sdk.interface';
import { HttpClientSDKInterface, HttpConfig } from './http-client.interface';
import { LoggerSDKInterface } from './logger.sdk.interface';
import { OffsetStoreSDKInterface } from './offset-store.sdk.interface';
import { ProcessingSDKInterface } from './processing.sdk.interface';
import { ReceiverSDKInterface } from './receiver.sdk.interface';
import { SenderSDKInterface } from './sender.sdk.interface';
import { TelemetrySDKInterface } from './telemetry.sdk.interface';
import { TemplatingSDKInterface } from './templating.sdk.interface';
export interface ConnectorSDKInterface<T = BaseConnectorConfig> {
    get config(): T;
    get logger(): LoggerSDKInterface;
    get sender(): SenderSDKInterface;
    get receiver(): ReceiverSDKInterface;
    get templating(): TemplatingSDKInterface;
    /**
     * Service to schedule and manage processing tasks that need monitoring and retries.
     */
    get processing(): ProcessingSDKInterface;
    get offsetStore(): OffsetStoreSDKInterface;
    /**
     * Ability to send telemetry data such as gauges and increments on how the connector is performing.
     */
    get telemetry(): TelemetrySDKInterface;
    /**
     * Get file service instance to access files using a specified DSN. If no DSN is provided, defaults to local file system tmp dir.
     */
    files(dsn?: string): FilesSDKInterface;
    httpClient(httpConfig?: HttpConfig): HttpClientSDKInterface;
}
