/**
 * (C) Copyright IBM Corp. 2025-2026.
 *
 * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except
 * in compliance with the License. You may obtain a copy of the License at
 *
 *      http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software distributed under the License
 * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express
 * or implied. See the License for the specific language governing permissions and limitations under
 * the License.
 */
import type { UserOptions } from 'ibm-cloud-sdk-core';
import { APIBaseService } from "../base/base.js";
import { ChatCompletions, EmbeddingCompletions, GenerateTextCompletions } from "./completions.js";
import { Models } from "./models.js";
import { Providers } from "./providers.js";
import { Policies } from "./policies.js";
import { RateLimits } from "./ratelimit.js";
import type { DeleteParameters, GetParameters, PostParameters, PutParameters, Response } from "../base/index.js";
import type { ContextIdentifiers } from "../types/common.js";
/** Represents the chat functionality of the gateway. */
export declare class Chat {
    completion: ChatCompletions;
    /**
     * Creates an instance of Chat.
     *
     * @param {APIBaseService} gateway - The base API service instance.
     */
    constructor(gateway: APIBaseService);
}
/** Represents the embeddings functionality of the gateway. */
export declare class Embeddings {
    /** EmbeddingCompletions instance. */
    completion: EmbeddingCompletions;
    /**
     * Creates an instance of Embeddings.
     *
     * @param {APIBaseService} gateway - The base API service instance.
     */
    constructor(gateway: APIBaseService);
}
/** Main gateway class that extends APIBaseService. */
export declare class Gateway extends APIBaseService {
    /** GenerateTextCompletions instance. */
    completion: GenerateTextCompletions;
    /** Chat instance. */
    chat: Chat;
    /** Embeddings instance. */
    embeddings: Embeddings;
    /** Models instance. */
    models: Models;
    /** Providers instance. */
    providers: Providers;
    policies: Policies;
    rateLimit: RateLimits;
    /**
     * Constructs an instance of Gateway with passed in options and external configuration.
     *
     * @category Constructor
     * @param {UserOptions} options - The parameters to send to the service.
     * @param {string} options.version - The version date for the API of the form `YYYY-MM-DD`
     * @param {string} options.serviceUrl - The base URL for the service
     * @param {string} [options.serviceName] - The name of the service to configure
     * @param {Authenticator} [options.authenticator] - The Authenticator object used to authenticate
     *   requests to the service
     */
    constructor(options: UserOptions);
    private appendContainerIdToHeaders;
    _get<T>(params: GetParameters & ContextIdentifiers): Promise<Response<T>>;
    _post<T>(params: PostParameters): Promise<Response<T>>;
    _delete<T>(params: DeleteParameters): Promise<Response<T>>;
    _put<T>(params: PutParameters): Promise<Response<T>>;
}
//# sourceMappingURL=gateway.d.ts.map