// Copyright (c) .NET Foundation. All rights reserved.
// Licensed under the MIT License.

import {
    CosmosDBv3FunctionOptions,
    CosmosDBv3Handler,
    CosmosDBv3Input,
    CosmosDBv3InputOptions,
    CosmosDBv3Output,
    CosmosDBv3OutputOptions,
    CosmosDBv3Trigger,
    CosmosDBv3TriggerOptions,
} from './cosmosDB.v3';
import {
    CosmosDBv4FunctionOptions,
    CosmosDBv4Handler,
    CosmosDBv4Input,
    CosmosDBv4InputOptions,
    CosmosDBv4Output,
    CosmosDBv4OutputOptions,
    CosmosDBv4Trigger,
    CosmosDBv4TriggerOptions,
} from './cosmosDB.v4';

export type CosmosDBHandler<T = unknown> = CosmosDBv3Handler<T> | CosmosDBv4Handler<T>;

export type CosmosDBFunctionOptions<T = unknown> = CosmosDBv3FunctionOptions<T> | CosmosDBv4FunctionOptions<T>;

export type CosmosDBInputOptions = CosmosDBv3InputOptions | CosmosDBv4InputOptions;
export type CosmosDBInput = CosmosDBv3Input | CosmosDBv4Input;

export type CosmosDBTriggerOptions = CosmosDBv3TriggerOptions | CosmosDBv4TriggerOptions;
export type CosmosDBTrigger = CosmosDBv3Trigger | CosmosDBv4Trigger;

export type CosmosDBOutputOptions = CosmosDBv3OutputOptions | CosmosDBv4OutputOptions;
export type CosmosDBOutput = CosmosDBv3Output | CosmosDBv4Output;
