export interface MessageMonitorConfig {
    type: 'in-memory' | 'redis' | 'disabled';
}
export declare enum ConfiguredConnectorTypes {
    API = "api",
    API_SINK = "api-sink",
    API_SOURCE = "api-source",
    DUMMY_NODE = "dummy-node",
    FILE_COPY = "file-copy",
    FILE = "file",
    FILE_SINK = "file-sink",
    FILE_SOURCE = "file-source",
    SAMBA_SINK = "samba-sink",
    SAMBA_SOURCE = "samba-source",
    SQL_SINK = "sql-sink",
    SQL_SOURCE = "sql-source",
    MQTT = "mqtt",
    CUBE_QUERY_RUNNER = "cube-query-runner",
    FACTORY_NEBULA_SOURCE = "factory-nebula-source",
    BYSTRONIC = "bystronic",
    IMAP_SOURCE = "imap-source",
    IMAP_SINK = "imap-sink",
    OPCUA_SOURCE = "opcua-source",
    OPCUA_SINK = "opcua-sink",
    AI_AGENT = "ai-agent",
    MICROSOFT_OFFICE365_EMAIL = "microsoft-office365-email",
    MKG = "mkg",
    EZ_MES = "ez-mes",
    OTTO_FLEET_MANAGER_V2 = "otto-fleet-manager-v2",
    FRAUNHOFER_BATTERY_ASSEMBLY_CELLS = "fraunhofer-battery-assembly-cells",
    PDF_GENERATE = "pdf-generate",
    ONSHAPE = "onshape",
    OROOX = "oroox",
    GPMS = "gpms",
    KEIZERSMETAAL_TRUMPF_API = "keizersmetaal-trumpf-api",
    HP_INDIGO = "hp-indigo",
    QLINK = "qlink"
}
export interface ConnectorConfig {
    type: ConfiguredConnectorTypes;
    identifier: string;
}
export interface RedisMessageMonitorConfig extends MessageMonitorConfig {
    type: 'redis';
    url: string;
    ttl?: number;
}
export interface InMemoryMessageMonitorConfig extends MessageMonitorConfig {
    type: 'in-memory';
    messagesToKeep: number;
}
export interface DisabledMessageMonitorConfig extends MessageMonitorConfig {
    type: 'disabled';
}
export interface TopicRegex {
    pattern: string;
    flags: string;
}
export interface FileRegex {
    pattern: string;
    flags: string;
}
export declare function isTopicRegex(obj: TopicRegex | string): obj is TopicRegex;
export interface CubeConfigHeaders {
    Authorization: string;
}
export interface CubeConfig {
    auth0_client_secret?: string;
    auth0_client_id?: string;
    auth0_audience?: string;
    auth0_token_url?: string;
    authorization?: string;
    apiUrl: string;
    headers?: CubeConfigHeaders;
    redis_url?: string;
}
export declare function isCubeConfigType(obj: CubeConfig): obj is CubeConfig;
export interface AwsKafkaSaslConfig {
    region?: string;
    accessKeyId?: string;
    secretAccessKey?: string;
    mechanism: 'aws';
}
export declare function isAwsKafkaSalsConfig(obj: AwsKafkaSaslConfig): obj is AwsKafkaSaslConfig;
export interface DatabaseConfig {
    uri: string;
    ssl?: boolean;
    tenantPassword?: string;
}
export interface ActionConfig {
    timeSensitive: boolean;
}
export interface KafkaBrokerConfig {
    groupId: string;
    clientId: string;
    brokers: Array<string>;
    consumerTopics?: Array<string | TopicRegex>;
    sasl?: AwsKafkaSaslConfig;
    intervalCheckForNewTopics?: number;
    disableLogs?: boolean;
    autoCommitThreshold?: number;
    autoCommitInterval?: number;
    partitionsConsumedConcurrently?: number;
    messageMonitor?: RedisMessageMonitorConfig | InMemoryMessageMonitorConfig | DisabledMessageMonitorConfig;
    useConfluentLibrary?: boolean;
    newConsumerProtocol?: boolean;
}
export declare function isKafkaBrokerConfigType(obj: KafkaBrokerConfig): obj is KafkaBrokerConfig;
export declare function isActionConfigType(obj?: Partial<ActionConfig>): obj is ActionConfig;
export declare function isDatabaseConfigType(obj: DatabaseConfig): obj is DatabaseConfig;
export interface BaseConnectorConfig {
    processIdentifier: string;
    tenantIdentifier: string;
    datasourceIdentifier: string;
    kafka: KafkaBrokerConfig;
    action?: ActionConfig;
}
export declare function isBaseConnectorConfigType(obj: BaseConnectorConfig): obj is BaseConnectorConfig;
export declare const OPENAI_MODELS: readonly ["gpt-3.5-turbo", "gpt-4", "gpt-4-turbo", "gpt-4o", "gpt-4o-mini", "gpt-5-nano", "gpt-5-mini", "gpt-5", "o1-preview", "o1-mini"];
export declare const ANTHROPIC_MODELS: readonly ["claude-2", "claude-2-100k", "claude-instant-100k", "claude-sonnet-4-5"];
export declare const MISTRAL_MODELS: readonly ["mistral-large-2512", "mistral-medium-2508", "mistral-small-2506"];
export type OpenAiModel = (typeof OPENAI_MODELS)[number];
export type AnthropicModel = (typeof ANTHROPIC_MODELS)[number];
export type MistralModel = (typeof MISTRAL_MODELS)[number];
export interface AiAgentModel {
    apiKey: string;
    provider: 'openai' | 'anthropic' | 'aws' | 'mistral';
    model: OpenAiModel | AnthropicModel | MistralModel;
    region?: string;
    credentials?: {
        secretAccessKey: string;
        accessKeyId: string;
    };
    temperature?: number;
    timeout?: number;
}
export interface AiAgentConfig extends BaseConnectorConfig {
    model: AiAgentModel;
}
