import type { StorageSettings } from "../storage"; /** * Represents an API result, containing the data, * the request ID and any other relevant information. */ export type Result = { data: T; requestId: string; }; /** * The function input and other configuration when running * the function, such as the HTTP method to use. */ export type RunOptions = { /** * The function input. It will be submitted either as query params * or the body payload, depending on the `method`. */ readonly input?: Input; /** * The HTTP method, defaults to `post`; */ readonly method?: "get" | "post" | "put" | "delete" | string; /** * The abort signal to cancel the request. */ readonly abortSignal?: AbortSignal; /** * Object lifecycle configuration for controlling how long generated objects * (images, files, etc.) remain available before expiring. * * @see StorageSettings * @see https://docs.fal.ai/model-apis/model-endpoints/queue#object-lifecycle */ readonly storageSettings?: StorageSettings; /** * Server-side request timeout in seconds. Limits total time spent waiting * before processing starts (includes queue wait, retries, and routing). * Does not apply once the application begins processing. * * This will be sent as the `x-fal-request-timeout` header. */ readonly startTimeout?: number; }; export type UrlOptions = { /** * If `true`, the function will use the queue to run the function * asynchronously and return the result in a separate call. This * influences how the URL is built. */ readonly subdomain?: string; /** * The query parameters to include in the URL. */ readonly query?: Record; /** * The path to append to the function URL. */ path?: string; }; export type RequestLog = { message: string; level: "STDERR" | "STDOUT" | "ERROR" | "INFO" | "WARN" | "DEBUG"; source: "USER"; timestamp: string; }; export type Metrics = { inference_time: number | null; }; interface BaseQueueStatus { status: "IN_QUEUE" | "IN_PROGRESS" | "COMPLETED"; request_id: string; response_url: string; status_url: string; cancel_url: string; } export interface InQueueQueueStatus extends BaseQueueStatus { status: "IN_QUEUE"; queue_position: number; } export interface InProgressQueueStatus extends BaseQueueStatus { status: "IN_PROGRESS"; logs: RequestLog[]; } export interface CompletedQueueStatus extends BaseQueueStatus { status: "COMPLETED"; logs: RequestLog[]; metrics?: Metrics; } export type QueueStatus = InProgressQueueStatus | CompletedQueueStatus | InQueueQueueStatus; export declare function isQueueStatus(obj: any): obj is QueueStatus; export declare function isCompletedQueueStatus(obj: any): obj is CompletedQueueStatus; export type ValidationErrorInfo = { msg: string; loc: Array; type: string; }; /** * Represents the response from a WebHook request. * This is a union type that varies based on the `status` property. * * @template Payload - The type of the payload in the response. It defaults to `any`, * allowing for flexibility in specifying the structure of the payload. */ export type WebHookResponse = { /** Indicates a successful response. */ status: "OK"; /** The payload of the response, structure determined by the Payload type. */ payload: Payload; /** Error is never present in a successful response. */ error: never; /** The unique identifier for the request. */ request_id: string; } | { /** Indicates an unsuccessful response. */ status: "ERROR"; /** The payload of the response, structure determined by the Payload type. */ payload: Payload; /** Description of the error that occurred. */ error: string; /** The unique identifier for the request. */ request_id: string; }; export {};