import type { z } from 'zod';
import type { AuthConfig, ConnectionType, ConnectorDefinition, ConnectorExecuteResult, ConnectorLifecycle, ConnectorMethod } from '../types/connector/index.js';
import type { ConnectorId } from '../types/ids/index.js';
import { type Logger } from '../utils/logger.js';
export declare abstract class BaseConnector<TConfig = unknown> implements ConnectorLifecycle<TConfig> {
    abstract readonly id: ConnectorId;
    abstract readonly name: string;
    abstract readonly description: string;
    abstract readonly connectionType: ConnectionType;
    abstract readonly configSchema: z.ZodType<TConfig, z.ZodTypeDef, unknown>;
    abstract readonly methods: ConnectorMethod[];
    protected log: Logger;
    protected config: TConfig | null;
    protected auth: AuthConfig | undefined;
    constructor();
    abstract connect(config: TConfig, auth?: AuthConfig): Promise<void>;
    abstract disconnect(): Promise<void>;
    abstract healthCheck(): Promise<boolean>;
    abstract execute(method: string, input: unknown): Promise<ConnectorExecuteResult>;
    toDefinition(): ConnectorDefinition<TConfig>;
    protected findMethod(methodName: string): ConnectorMethod | undefined;
    protected requireMethod(methodName: string): ConnectorMethod;
    protected validateInput(method: ConnectorMethod, input: unknown): unknown;
    protected measureExecution<TResult>(fn: () => Promise<TResult>): Promise<{
        result: TResult;
        durationMs: number;
    }>;
}
//# sourceMappingURL=BaseConnector.d.ts.map