import * as Core from 'cloudflaredev/core';
import { APIResource } from 'cloudflaredev/resource';
import * as LogsAPI from 'cloudflaredev/resources/ai-gateway/logs';
import { V4PagePaginationArray, type V4PagePaginationArrayParams } from 'cloudflaredev/pagination';
export declare class AIGateway extends APIResource {
    logs: LogsAPI.Logs;
    /**
     * Create a new Gateway
     */
    create(params: AIGatewayCreateParams, options?: Core.RequestOptions): Core.APIPromise<AIGatewayCreateResponse>;
    /**
     * Update a Gateway
     */
    update(id: string, params: AIGatewayUpdateParams, options?: Core.RequestOptions): Core.APIPromise<AIGatewayUpdateResponse>;
    /**
     * List Gateway's
     */
    list(params: AIGatewayListParams, options?: Core.RequestOptions): Core.PagePromise<AIGatewayListResponsesV4PagePaginationArray, AIGatewayListResponse>;
    /**
     * Delete a Gateway
     */
    delete(id: string, params: AIGatewayDeleteParams, options?: Core.RequestOptions): Core.APIPromise<AIGatewayDeleteResponse>;
    /**
     * Fetch a Gateway
     */
    get(id: string, params: AIGatewayGetParams, options?: Core.RequestOptions): Core.APIPromise<AIGatewayGetResponse>;
}
export declare class AIGatewayListResponsesV4PagePaginationArray extends V4PagePaginationArray<AIGatewayListResponse> {
}
export interface AIGatewayCreateResponse {
    task: AIGatewayCreateResponse.Task;
}
export declare namespace AIGatewayCreateResponse {
    interface Task {
        id: string;
        cache_invalidate_on_update: boolean;
        cache_ttl: number;
        collect_logs: boolean;
        created_at: string;
        modified_at: string;
        name: string;
        slug: string;
        rate_limiting_interval?: number;
        rate_limiting_limit?: number;
        rate_limiting_technique?: string;
    }
}
export interface AIGatewayUpdateResponse {
    id: string;
    cache_invalidate_on_update: boolean;
    cache_ttl: number;
    collect_logs: boolean;
    created_at: string;
    modified_at: string;
    name: string;
    slug: string;
    rate_limiting_interval?: number;
    rate_limiting_limit?: number;
    rate_limiting_technique?: string;
}
export interface AIGatewayListResponse {
    id: string;
    cache_invalidate_on_update: boolean;
    cache_ttl: number;
    collect_logs: boolean;
    created_at: string;
    modified_at: string;
    name: string;
    slug: string;
    rate_limiting_interval?: number;
    rate_limiting_limit?: number;
    rate_limiting_technique?: string;
}
export interface AIGatewayDeleteResponse {
    id: string;
    cache_invalidate_on_update: boolean;
    cache_ttl: number;
    collect_logs: boolean;
    created_at: string;
    modified_at: string;
    name: string;
    slug: string;
    rate_limiting_interval?: number;
    rate_limiting_limit?: number;
    rate_limiting_technique?: string;
}
export interface AIGatewayGetResponse {
    id: string;
    cache_invalidate_on_update: boolean;
    cache_ttl: number;
    collect_logs: boolean;
    created_at: string;
    modified_at: string;
    name: string;
    slug: string;
    rate_limiting_interval?: number;
    rate_limiting_limit?: number;
    rate_limiting_technique?: string;
}
export interface AIGatewayCreateParams {
    /**
     * Path param:
     */
    account_id: string;
    /**
     * Body param:
     */
    cache_invalidate_on_update: boolean;
    /**
     * Body param:
     */
    cache_ttl: number;
    /**
     * Body param:
     */
    collect_logs: boolean;
    /**
     * Body param:
     */
    name: string;
    /**
     * Body param:
     */
    slug: string;
    /**
     * Body param:
     */
    rate_limiting_interval?: number;
    /**
     * Body param:
     */
    rate_limiting_limit?: number;
    /**
     * Body param:
     */
    rate_limiting_technique?: string;
}
export interface AIGatewayUpdateParams {
    /**
     * Path param:
     */
    account_id: string;
    /**
     * Body param:
     */
    cache_invalidate_on_update: boolean;
    /**
     * Body param:
     */
    cache_ttl: number;
    /**
     * Body param:
     */
    collect_logs: boolean;
    /**
     * Body param:
     */
    name: string;
    /**
     * Body param:
     */
    slug: string;
    /**
     * Body param:
     */
    rate_limiting_interval?: number;
    /**
     * Body param:
     */
    rate_limiting_limit?: number;
    /**
     * Body param:
     */
    rate_limiting_technique?: string;
}
export interface AIGatewayListParams extends V4PagePaginationArrayParams {
    /**
     * Path param:
     */
    account_id: string;
    /**
     * Query param:
     */
    id?: string;
    /**
     * Query param: Order By Column Name
     */
    order_by?: string;
}
export interface AIGatewayDeleteParams {
    account_id: string;
}
export interface AIGatewayGetParams {
    account_id: string;
}
export declare namespace AIGateway {
    export import Logs = LogsAPI.Logs;
    export import LogGetResponse = LogsAPI.LogGetResponse;
    export import LogGetParams = LogsAPI.LogGetParams;
}
//# sourceMappingURL=ai-gateway.d.ts.map