import { APIResource } from "../../core/resource.js";
import { APIPromise } from "../../core/api-promise.js";
import { PagePromise, V4PagePaginationArray, type V4PagePaginationArrayParams } from "../../core/pagination.js";
import { RequestOptions } from "../../internal/request-options.js";
export declare class BaseProviderConfigs extends APIResource {
    static readonly _key: readonly ['aiGateway', 'providerConfigs'];
    /**
     * Stores an upstream AI provider API key for an AI Gateway in the Secrets Store
     * configured on the gateway, with an optional rate limit. Pass `secret` to store a
     * new key, or omit it to use an existing Secrets Store secret.
     *
     * @example
     * ```ts
     * const providerConfig =
     *   await client.aiGateway.providerConfigs.create(
     *     'my-gateway',
     *     {
     *       account_id: '3ebbcb006d4d46d7bb6a8c7f14676cb0',
     *       alias: 'alias',
     *       default_config: true,
     *       provider_slug: 'provider_slug',
     *     },
     *   );
     * ```
     */
    create(gatewayID: string, params: ProviderConfigCreateParams, options?: RequestOptions): APIPromise<ProviderConfigCreateResponse>;
    /**
     * Lists the provider keys stored for an AI Gateway. Responses show a masked
     * preview of each key, never the key itself.
     *
     * @example
     * ```ts
     * // Automatically fetches more pages as needed.
     * for await (const providerConfigListResponse of client.aiGateway.providerConfigs.list(
     *   'my-gateway',
     *   { account_id: '3ebbcb006d4d46d7bb6a8c7f14676cb0' },
     * )) {
     *   // ...
     * }
     * ```
     */
    list(gatewayID: string, params: ProviderConfigListParams, options?: RequestOptions): PagePromise<ProviderConfigListResponsesV4PagePaginationArray, ProviderConfigListResponse>;
}
export declare class ProviderConfigs extends BaseProviderConfigs {
}
export type ProviderConfigListResponsesV4PagePaginationArray = V4PagePaginationArray<ProviderConfigListResponse>;
export interface ProviderConfigCreateResponse {
    id: string;
    alias: string;
    default_config: boolean;
    /**
     * Unique identifier of the AI Gateway within the account.
     */
    gateway_id: string;
    modified_at: string;
    provider_slug: string;
    secret_id: string;
    secret_preview: string;
    rate_limit?: number;
    rate_limit_period?: number;
}
export interface ProviderConfigListResponse {
    id: string;
    alias: string;
    default_config: boolean;
    /**
     * Unique identifier of the AI Gateway within the account.
     */
    gateway_id: string;
    modified_at: string;
    provider_slug: string;
    secret_id: string;
    secret_preview: string;
    rate_limit?: number;
    rate_limit_period?: number;
}
export interface ProviderConfigCreateParams {
    /**
     * Path param
     */
    account_id: string;
    /**
     * Body param
     */
    alias: string;
    /**
     * Body param
     */
    default_config: boolean;
    /**
     * Body param
     */
    provider_slug: string;
    /**
     * Body param
     */
    rate_limit?: number;
    /**
     * Body param
     */
    rate_limit_period?: number;
    /**
     * Body param: Provider API key to store in the Secrets Store configured on the
     * gateway.
     */
    secret?: string;
    /**
     * Body param
     */
    secret_id?: string;
}
export interface ProviderConfigListParams extends V4PagePaginationArrayParams {
    /**
     * Path param
     */
    account_id: string;
}
export declare namespace ProviderConfigs {
    export { type ProviderConfigCreateResponse as ProviderConfigCreateResponse, type ProviderConfigListResponse as ProviderConfigListResponse, type ProviderConfigListResponsesV4PagePaginationArray as ProviderConfigListResponsesV4PagePaginationArray, type ProviderConfigCreateParams as ProviderConfigCreateParams, type ProviderConfigListParams as ProviderConfigListParams, };
}
//# sourceMappingURL=provider-configs.d.ts.map