import { type ShortcutXLModelCall, type ShortcutXLModelCallTransportKind as ShortcutXLModelCallTransportKindType, type ShortcutXLProviderUsageEvent, type ShortcutXLUsageLogResult } from '../contracts/model-call.js';
import type { ShortcutXLModelStreamRequest } from '../contracts/model-stream.js';
import { type RunShortcutXLModelStreamRequestOptions } from './stream.js';
export interface ShortcutXLModelStreamTransport {
    readonly kind: ShortcutXLModelCallTransportKindType;
    stream(call: ShortcutXLModelCall, options: RunShortcutXLModelStreamRequestOptions): Promise<void>;
}
export interface ShortcutXLModelCallOrchestrator {
    stream(request: ShortcutXLModelStreamRequest, options: RunShortcutXLModelStreamRequestOptions): Promise<void>;
}
export interface ShortcutXLModelUsageStatusLogger {
    recordProviderUsage(event: ShortcutXLProviderUsageEvent): void | Promise<void>;
    recordUsageReportResult(result: ShortcutXLUsageLogResult): void | Promise<void>;
}
export interface CreateShortcutXLModelCallOrchestratorOptions {
    readonly streamTransport?: ShortcutXLModelStreamTransport;
    readonly usageStatusLogger?: ShortcutXLModelUsageStatusLogger;
}
export declare function createShortcutProxyModelStreamTransport(): ShortcutXLModelStreamTransport;
export declare function createShortcutXLModelCallOrchestrator(options?: CreateShortcutXLModelCallOrchestratorOptions): ShortcutXLModelCallOrchestrator;
export declare function runShortcutXLModelCallStreamRequest(request: ShortcutXLModelStreamRequest, options: RunShortcutXLModelStreamRequestOptions): Promise<void>;
//# sourceMappingURL=model-call-orchestrator.d.ts.map