import type { TargetDiscoveryDescriptor } from '../target/discovery.js'; import type { AllocateRequest, Capsule, CapsuleAccess, CapsuleLimits, CapsuleListPage, Clock, HttpTransport, ListRequest, RetryPolicy, TargetAccessTokenProvider, } from './types.js'; export interface TargetAdapter { allocate(req: AllocateRequest, signal?: AbortSignal): Promise; list(req?: ListRequest, signal?: AbortSignal): Promise; inspect(capsuleId: string, signal?: AbortSignal): Promise; terminate(capsuleId: string, signal?: AbortSignal): Promise; limits(signal?: AbortSignal): Promise; access(capsuleId: string, signal?: AbortSignal): Promise; } export interface CreateTargetAdapterOptions { readonly descriptor: TargetDiscoveryDescriptor; readonly organization: { readonly id: string }; readonly tokenProvider: TargetAccessTokenProvider; readonly transport?: HttpTransport; readonly clock?: Clock; readonly retryPolicy?: RetryPolicy; }