import type { ProviderRuntimeMetadata } from './interface.js';
import type { ProviderRegistry } from './registry.js';
export interface ProviderModelSnapshot {
    readonly id: string;
    readonly registryKey: string;
    readonly displayName: string;
    readonly selectable: boolean;
    readonly contextWindow: number;
    readonly tier?: string | undefined;
    readonly pricing?: {
        readonly inputPerMillionTokens: number;
        readonly outputPerMillionTokens: number;
        readonly currency: 'USD';
    };
}
export interface ProviderRuntimeSnapshot {
    readonly providerId: string;
    readonly active: boolean;
    readonly modelCount: number;
    readonly runtime: ProviderRuntimeMetadata;
    readonly models: readonly ProviderModelSnapshot[];
}
export interface ProviderUsageSnapshot {
    readonly providerId: string;
    readonly active: boolean;
    readonly currentModelRegistryKey?: string | undefined;
    readonly pricingSource: 'catalog' | 'provider' | 'none';
    readonly models: readonly ProviderModelSnapshot[];
    readonly usage: NonNullable<ProviderRuntimeMetadata['usage']>;
}
export declare function listProviderRuntimeSnapshots(providerRegistry: Pick<ProviderRegistry, 'listProviders' | 'getRegistered' | 'getCurrentModel' | 'listModels' | 'getCostFromCatalog' | 'getPricingForModel' | 'describeRuntime'>): Promise<readonly ProviderRuntimeSnapshot[]>;
export declare function getProviderRuntimeSnapshot(providerRegistry: Pick<ProviderRegistry, 'getRegistered' | 'getCurrentModel' | 'listModels' | 'getCostFromCatalog' | 'getPricingForModel' | 'describeRuntime'>, providerId: string): Promise<ProviderRuntimeSnapshot | null>;
export declare function getProviderUsageSnapshot(providerRegistry: Pick<ProviderRegistry, 'getRegistered' | 'getCurrentModel' | 'listModels' | 'getCostFromCatalog' | 'getPricingForModel' | 'describeRuntime'>, providerId: string): Promise<ProviderUsageSnapshot | null>;
//# sourceMappingURL=runtime-snapshot.d.ts.map