import { ApiResource } from '../apiResource';
import { APIResponseType, ApiClientInterface } from '../_types/generalTypes';
import { APIPromise, RequestOptions } from '../baseClient';
export interface VirtualKeysAddParams {
    name?: string;
    provider?: string;
    key?: string;
    note?: string | null;
    apiVersion?: string | null;
    resourceName?: string | null;
    deploymentName?: string | null;
    workspace_id?: string;
    usage_limits?: Record<string, any>;
    [key: string]: any;
}
export interface VirtualKeysAddResponse extends APIResponseType {
    id?: string;
    slug?: string;
    object?: string;
}
export interface VirtualKeysGetParams {
    slug?: string;
}
export interface VirtualKeysGetResponse extends APIResponseType {
    id?: string;
    ai_provider_name?: string;
    model_config?: Record<string, any>;
    masked_api_key?: string;
    slug?: string;
    name?: string;
    usage_limits?: Record<string, any>;
    status?: string;
    note?: null | string;
    created_at?: Date;
    rate_limits?: Record<string, any>[];
    object?: string;
}
export interface VirtualKeysListParams {
    workspace_id?: string;
}
export interface VirtualKeysListResponse extends APIResponseType {
    object?: string;
    total?: number;
    data?: VirtualKeysGetResponse[];
}
export interface VirtualKeysUpdateParams {
    slug?: string;
    name?: string;
    key?: string;
    note?: string | null;
    usage_limits?: Record<string, any>;
    rate_limits?: Record<string, any>[];
    [key: string]: any;
}
export interface VirtualKeysUpdateResponse extends APIResponseType {
    id?: string;
    slug?: string;
    object?: string;
}
export interface VirtualKeysDeleteParams {
    slug?: string;
}
export declare class VirtualKeys extends ApiResource {
    create(body: VirtualKeysAddParams, params?: ApiClientInterface, opts?: RequestOptions): APIPromise<VirtualKeysAddResponse>;
    list(_body?: VirtualKeysListParams, params?: ApiClientInterface, opts?: RequestOptions): APIPromise<VirtualKeysListResponse>;
    retrieve(body: VirtualKeysGetParams, params?: ApiClientInterface, opts?: RequestOptions): APIPromise<VirtualKeysGetResponse>;
    update(body: VirtualKeysUpdateParams, params?: ApiClientInterface, opts?: RequestOptions): APIPromise<VirtualKeysUpdateResponse>;
    delete(body: VirtualKeysDeleteParams, params?: ApiClientInterface, opts?: RequestOptions): APIPromise<any>;
}
