import { default as OpenAI } from 'openai';
import { FinalRequestOptions, PagePromise, RequestOptions } from 'openai/core';
import { Page } from 'openai/pagination';
import { GeminiAI } from '../../index';
import { APIResource } from '../resource';

export declare class Models extends APIResource {
    /**
     * Retrieves a model instance, providing basic information about the model such as
     * the owner and permissioning.
     */
    retrieve(model: string, options?: RequestOptions): Promise<Model>;
    /**
     * Lists the currently available models, and provides basic information about each
     * one such as the owner and availability.
     */
    list(options?: RequestOptions): PagePromise<ModelsPage, Model>;
}
export declare class ModelsPage extends Page<Model> {
    constructor(client: GeminiAI, response: Response, body: GeminiPageResponse, options: FinalRequestOptions);
}
interface GeminiModel {
    name: string;
    version: string;
    displayName: string;
    description: string;
    inputTokenLimit: string;
    outputTokenLimit: string;
    supportedGenerationMethods: string[];
}
interface GeminiPageResponse {
    models: GeminiModel[];
}
/**
 * Describes an OpenAI model offering that can be used with the API.
 */
export type Model = OpenAI.Models.Model;
export declare namespace Models {
    export import Model = OpenAI.Models.Model;
    export import ModelsPage = OpenAI.Models.ModelsPage;
}
export {};
