import type { ApiClient } from '@playdrop/api-client';
import type { AiClient } from '@playdrop/ai-client';
import { type CliAccountSession, type CliConfig } from './config';
import { type EnvironmentConfig } from './environment';
import { type ResolvedWorkspaceAuthConfig } from './workspaceAuth';
export type EnvironmentContext = {
    client: ApiClient;
    aiClient: AiClient;
    env: string;
    envConfig: EnvironmentConfig;
    token: string;
    config: CliConfig;
    account: CliAccountSession | null;
    workspaceAuth: ResolvedWorkspaceAuthConfig | null;
};
type EnvironmentCallback = (ctx: EnvironmentContext) => Promise<void> | void;
export type ResolveAuthenticatedEnvironmentOptions = {
    env?: string;
    workspacePath?: string;
};
export declare function resolveAuthenticatedEnvironmentContext(command: string, actionLabel: string, options?: ResolveAuthenticatedEnvironmentOptions): Promise<EnvironmentContext | null>;
export declare function resolveOptionalEnvironmentContext(command: string, options?: ResolveAuthenticatedEnvironmentOptions): Promise<EnvironmentContext | null>;
export declare function withEnvironment(command: string, actionLabel: string, callback: EnvironmentCallback, options?: ResolveAuthenticatedEnvironmentOptions): Promise<void>;
export declare function withPublicEnvironment(command: string, callback: EnvironmentCallback): Promise<void>;
export {};
