import type { ServerlessPayloads, ServerlessRoutines } from './constants'; export interface CloudProvider = Record, CreateFunctionSpecifics extends Record = Record, StorageClass extends string = string, RequestHandler extends object = object> { type: string; region: Region; receivedArtifactType: ReceivedArtifactType; creationFunctionOptions: CreateFunctionSpecifics; storageClass: StorageClass; requestHandler: RequestHandler | null | undefined; } export type ReceivedArtifact = { filename: string; sizeInBytes: number; s3Url: string; s3Key: string; } & Provider['receivedArtifactType']; export type CostsInfo = { accruedSoFar: number; displayCost: string; currency: string; disclaimer: string; }; export type RenderStillFunctionResponsePayload = { type: 'success'; output: string; outKey: string; size: number; bucketName: string; sizeInBytes: number; estimatedPrice: CostsInfo; renderId: string; receivedArtifacts: ReceivedArtifact[]; }; export type ChunkRetry = { chunk: number; attempt: number; time: number; }; export type ParsedTiming = { chunk: number; start: number; rendered: number; }; export type CallFunctionOptions = { functionName: string; type: T; payload: ServerlessPayloads[T]; region: Provider['region']; timeoutInTest: number; requestHandler: Provider['requestHandler'] | null; }; export type ObjectChunkTimingData = { chunk: number; frameRange: [number, number]; startDate: number; timings: { [key: number]: number; }; };