type Argument = {
    key: string;
    value?: string;
};
type Binding = {
    exchange: string;
    routingKey: string;
};
type Header = {
    key: string;
    value?: string;
};
export type Options = {
    autoDelete: boolean;
    assertExchange: boolean;
    assertQueue: boolean;
    durable: boolean;
    exclusive: boolean;
    arguments: {
        argument: Argument[];
    };
    headers: {
        header: Header[];
    };
};
type ContentOptions = {
    contentIsBinary: true;
} | {
    contentIsBinary: false;
    jsonParseBody: boolean;
    onlyContent: boolean;
};
export type TriggerOptions = Options & {
    acknowledge: 'executionFinishes' | 'executionFinishesSuccessfully' | 'immediately' | 'laterMessageNode';
    parallelMessages: number;
    binding: {
        bindings: Binding[];
    };
} & ContentOptions;
export type RabbitMQCredentials = {
    hostname: string;
    port: number;
    username: string;
    password: string;
    vhost: string;
} & ({
    ssl: false;
} | ({
    ssl: true;
    ca: string;
} & ({
    passwordless: false;
} | {
    passwordless: true;
    cert: string;
    key: string;
    passphrase: string;
})));
export type ExchangeType = 'direct' | 'topic' | 'headers' | 'fanout';
export {};
//# sourceMappingURL=types.d.ts.map