import { type ContentGenerator } from "@google/gemini-cli-core/dist/src/core/contentGenerator.js";
export interface GeminiCliContentGeneratorOptions {
	modelId: string;
	cwd?: string;
	targetDir?: string;
}
/**
 * Create a Gemini CLI Core content generator for a model.
 *
 * Purpose: centralize the Code Assist setup and OAuth bootstrap logic in a
 * reusable package so SF's Gemini provider can stay focused on stream shaping.
 *
 * Consumer: the Google Gemini provider in pi-ai.
 */
export declare function createGeminiCliContentGenerator(
	options: GeminiCliContentGeneratorOptions,
): Promise<ContentGenerator>;
/**
 * Per-model quota bucket from CodeAssistServer.retrieveUserQuota.
 */
export interface GeminiQuotaBucket {
	modelId: string;
	usedFraction: number;
	remainingFraction: number;
	resetTime?: string;
}
/**
 * Snapshot of the active gemini-cli account: tier identity, project, and the
 * full per-model quota table.
 *
 * Why a single struct: every consumer (model picker, usage UI, capacity
 * diagnostics, catalog cache) needs the same three pieces of data. Returning
 * them together avoids three separate OAuth round trips.
 */
export interface GeminiAccountSnapshot {
	projectId: string;
	/** Active tier id from setupUser.userTier (e.g. "free-tier", "standard-tier"). */
	userTierId?: string;
	/** Active tier human label from setupUser.userTierName. */
	userTierName?: string;
	/**
	 * Paid tier descriptor when the account has one (e.g. AI Ultra). Carries
	 * id like "g1-ultra-tier" and the marketing name. Distinct from the
	 * effective userTier — a free-tier session can still have a paidTier
	 * marker if the underlying account is subscribed.
	 */
	paidTier?: {
		id?: string;
		name?: string;
	};
	models: GeminiQuotaBucket[];
}
/**
 * Discover the active gemini-cli account: tier, project, and every model the
 * account has access to (with per-model usage fraction and reset time).
 *
 * Best-effort: any failure (OAuth expired, no project, network) returns null
 * silently so callers can downgrade gracefully.
 *
 * Consumer: SF-side background catalog cache, usage UI, capacity diagnostics.
 */
export declare function snapshotGeminiCliAccount(
	cwd?: string,
): Promise<GeminiAccountSnapshot | null>;
/**
 * Convenience wrapper: just the model IDs the active gemini-cli account has
 * access to. Returns null on failure (same contract as snapshotGeminiCliAccount).
 */
export declare function discoverGeminiCliModels(
	cwd?: string,
): Promise<string[] | null>;
//# sourceMappingURL=index.d.ts.map
