import { Logger } from '@transai/logger';
import { KafkaSourceInterface } from '@xip-online-data/kafka-base-service';
import { KafkaCallbackResponse, BaseConnectorConfig, XodBaseMessageType, ActionInterface, XodJobType, ConnectorInterface } from '@xip-online-data/types';
import { Observable } from 'rxjs';
import { ConnectorRuntimeInterface } from './connector-runtime.interface';
import { PersistentOffsetStoreInterface } from './offset-store';
export interface IpcMessage {
    cmd: string;
    message: string;
}
export declare abstract class ConnectorRuntime<T> implements ConnectorRuntimeInterface {
    #private;
    protected readonly connector: ConnectorInterface;
    private readonly apiConfig;
    readonly IPC_CHANNEL = "connector-runtime";
    protected abstract readonly CONNECTOR_INSTANCE: string;
    protected readonly offsetStoreInstance: PersistentOffsetStoreInterface | undefined;
    get offsetStore(): PersistentOffsetStoreInterface;
    protected readonly CONNECTOR_IDENTIFIER: string;
    protected readonly log: Logger;
    protected kafkaServiceInstance?: KafkaSourceInterface;
    get kafkaService(): KafkaSourceInterface;
    protected callbackFunction: ((message: XodBaseMessageType) => Promise<KafkaCallbackResponse>) | undefined;
    getCallbackFunction(): (message: XodBaseMessageType) => Promise<KafkaCallbackResponse>;
    protected init: () => Promise<void>;
    protected exit: () => Promise<void>;
    private connectorConfig?;
    protected get config(): T & BaseConnectorConfig;
    private readonly messageSubject;
    get messageObservable(): Observable<Array<string>>;
    protected getActionConfig(message: XodJobType): Promise<ActionInterface>;
    protected getLatestActionConfig(message: XodJobType): ActionInterface;
    protected getSpecificActionConfig(message: XodJobType): ActionInterface | null;
    constructor(connector: ConnectorInterface, apiConfig: T & BaseConnectorConfig, actionConfigs: Array<ActionInterface>);
    start(): Promise<void>;
    stop(): Promise<void>;
    protected getConfig(): Promise<T & BaseConnectorConfig>;
    protected emitEventType(callbackFunction: (message: XodBaseMessageType) => Promise<KafkaCallbackResponse>): (message: XodBaseMessageType) => Promise<KafkaCallbackResponse>;
    private emit;
    private get actionConfigs();
    private set actionConfigs(value);
}
