import { type Client as ConnectClient, type Transport } from "@connectrpc/connect";
import { AccountService } from "../gitpod/v1/account_pb";
import { AgentService } from "../gitpod/v1/agent_pb";
import { BillingService } from "../gitpod/v1/billing_pb";
import { EditorService } from "../gitpod/v1/editor_pb";
import { EnvironmentAutomationService } from "../gitpod/v1/environment_automation_pb";
import { EnvironmentService } from "../gitpod/v1/environment_pb";
import { EventService } from "../gitpod/v1/event_pb";
import { GatewayService } from "../gitpod/v1/gateway_pb";
import { GroupService } from "../gitpod/v1/group_pb";
import { IdentityService } from "../gitpod/v1/identity_pb";
import { InsightsService } from "../gitpod/v1/insights_pb";
import { IntegrationService } from "../gitpod/v1/integration_pb";
import { NotificationService } from "../gitpod/v1/notification_pb";
import { OrganizationService } from "../gitpod/v1/organization_pb";
import { PrebuildService } from "../gitpod/v1/prebuild_pb";
import { ProjectService } from "../gitpod/v1/project_pb";
import { RunnerConfigurationService } from "../gitpod/v1/runner_configuration_pb";
import { RunnerService } from "../gitpod/v1/runner_pb";
import { SecretService } from "../gitpod/v1/secret_pb";
import { SecurityService } from "../gitpod/v1/security_pb";
import { ServiceAccountService } from "../gitpod/v1/service_account_pb";
import { TeamService } from "../gitpod/v1/team_pb";
import { UsageService } from "../gitpod/v1/usage_pb";
import { UserService } from "../gitpod/v1/user_pb";
import { WebhookService } from "../gitpod/v1/webhook_pb";
import { WorkflowService } from "../gitpod/v1/workflow_pb";
import { EnvironmentOpsService } from "../supervisor/v1/environmentopts_pb";
import { EnvironmentClient } from "./environments";
import { type CodexRun, type RunCodexOptions } from "./codex";
import type { Logger } from "./logging";
export interface ClientOptions {
    apiKey?: string;
    baseUrl?: string;
    transport?: Transport;
    fetch?: typeof globalThis.fetch;
    logger?: Logger;
    userAgent?: string;
    defaultTimeoutMs?: number;
}
export type ServiceClients = {
    account: ConnectClient<typeof AccountService>;
    agent: ConnectClient<typeof AgentService>;
    billing: ConnectClient<typeof BillingService>;
    editor: ConnectClient<typeof EditorService>;
    environment: ConnectClient<typeof EnvironmentService>;
    environmentAutomation: ConnectClient<typeof EnvironmentAutomationService>;
    event: ConnectClient<typeof EventService>;
    gateway: ConnectClient<typeof GatewayService>;
    group: ConnectClient<typeof GroupService>;
    identity: ConnectClient<typeof IdentityService>;
    insights: ConnectClient<typeof InsightsService>;
    integration: ConnectClient<typeof IntegrationService>;
    notification: ConnectClient<typeof NotificationService>;
    organization: ConnectClient<typeof OrganizationService>;
    prebuild: ConnectClient<typeof PrebuildService>;
    project: ConnectClient<typeof ProjectService>;
    runner: ConnectClient<typeof RunnerService>;
    runnerConfiguration: ConnectClient<typeof RunnerConfigurationService>;
    secret: ConnectClient<typeof SecretService>;
    security: ConnectClient<typeof SecurityService>;
    serviceAccount: ConnectClient<typeof ServiceAccountService>;
    team: ConnectClient<typeof TeamService>;
    usage: ConnectClient<typeof UsageService>;
    user: ConnectClient<typeof UserService>;
    webhook: ConnectClient<typeof WebhookService>;
    workflow: ConnectClient<typeof WorkflowService>;
};
export declare class OnaClient {
    readonly services: ServiceClients;
    readonly logger: Logger;
    readonly userAgent: string;
    readonly fetch?: typeof globalThis.fetch;
    private readonly apiKey?;
    private readonly defaultTimeoutMs?;
    constructor(options?: ClientOptions);
    environments(): EnvironmentClient;
    runCodex(options: RunCodexOptions): Promise<CodexRun>;
    opsClient(baseUrl: string, accessToken: string): ConnectClient<typeof EnvironmentOpsService>;
}
export declare function createClient(options?: ClientOptions): OnaClient;
export declare function createClientFromEnv(options?: Omit<ClientOptions, "apiKey">): OnaClient;
