///
import { hardware_types } from "./helpers/spaces";
import type { SvelteComponent } from "svelte";
import type { ComponentType } from "svelte";
export interface ApiData {
label: string;
parameter_name: string;
parameter_default?: any;
parameter_has_default?: boolean;
type: {
type: any;
description: string;
};
component: string;
example_input?: any;
python_type: {
type: string;
description: string;
};
serializer: string;
}
export interface JsApiData {
label: string;
parameter_name: string;
parameter_default?: any;
parameter_has_default?: boolean;
type: string;
description: string;
component: string;
example_input?: any;
serializer: string;
python_type: {
type: string;
description: string;
};
}
export interface EndpointInfo {
parameters: T[];
returns: T[];
type?: DependencyTypes;
}
export interface ApiInfo {
named_endpoints: Record>;
unnamed_endpoints: Record>;
}
export interface BlobRef {
path: string[];
type: string | undefined;
blob: Blob | File | false;
}
export type DataType = string | Buffer | Record | any[];
export declare class Command {
type: string;
command: string;
meta: {
path: string;
name: string;
orig_path: string;
};
fileData?: FileData;
constructor(command: string, meta: {
path: string;
name: string;
orig_path: string;
});
}
export type SubmitFunction = (endpoint: string | number, data: unknown[] | Record, event_data?: unknown, trigger_id?: number | null) => SubmitIterable;
export type PredictFunction = (endpoint: string | number, data: unknown[] | Record, event_data?: unknown) => Promise;
export type client_return = {
config: Config | undefined;
predict: PredictFunction;
submit: SubmitFunction;
component_server: (component_id: number, fn_name: string, data: unknown[]) => any;
view_api: (_fetch: typeof fetch) => Promise>;
};
export interface SubmitIterable extends AsyncIterable {
[Symbol.asyncIterator](): AsyncIterator;
cancel: () => Promise;
}
export type PredictReturn = {
type: EventType;
time: Date;
data: unknown;
endpoint: string;
fn_index: number;
};
export type SpaceStatus = SpaceStatusNormal | SpaceStatusError;
export interface SpaceStatusNormal {
status: "sleeping" | "running" | "building" | "error" | "stopped";
detail: "SLEEPING" | "RUNNING" | "RUNNING_BUILDING" | "BUILDING" | "NOT_FOUND";
load_status: "pending" | "error" | "complete" | "generating";
message: string;
}
export interface SpaceStatusError {
status: "space_error" | "paused";
detail: "NO_APP_FILE" | "CONFIG_ERROR" | "BUILD_ERROR" | "RUNTIME_ERROR" | "PAUSED";
load_status: "error";
message: string;
discussions_enabled: boolean;
}
export type SpaceStatusCallback = (a: SpaceStatus) => void;
export interface Config {
auth_required: boolean;
analytics_enabled: boolean;
connect_heartbeat: boolean;
auth_message: string;
components: ComponentMeta[];
css: string | null;
js: string | null;
head: string | null;
dependencies: Dependency[];
dev_mode: boolean;
enable_queue: boolean;
show_error: boolean;
layout: any;
mode: "blocks" | "interface";
root: string;
root_url?: string;
theme: string;
title: string;
version: string;
space_id: string | null;
is_space: boolean;
is_colab: boolean;
show_api: boolean;
stylesheets: string[];
path: string;
protocol: "sse_v3" | "sse_v2.1" | "sse_v2" | "sse_v1" | "sse" | "ws";
max_file_size?: number;
theme_hash?: number;
}
export interface ComponentMeta {
type: string;
id: number;
has_modes: boolean;
props: SharedProps;
instance: SvelteComponent;
component: ComponentType;
documentation?: Documentation;
children?: ComponentMeta[];
parent?: ComponentMeta;
value?: any;
component_class_id: string;
key: string | number | null;
rendered_in?: number;
}
interface SharedProps {
elem_id?: string;
elem_classes?: string[];
components?: string[];
server_fns?: string[];
interactive: boolean;
[key: string]: unknown;
root_url?: string;
}
export interface Documentation {
type?: TypeDescription;
description?: TypeDescription;
example_data?: string;
}
interface TypeDescription {
input_payload?: string;
response_object?: string;
payload?: string;
}
export interface Dependency {
id: number;
targets: [number, string][];
inputs: number[];
outputs: number[];
backend_fn: boolean;
js: string | null;
scroll_to_output: boolean;
trigger: "click" | "load" | string;
max_batch_size: number;
show_progress: "full" | "minimal" | "hidden";
frontend_fn: ((...args: unknown[]) => Promise) | null;
status?: string;
queue: boolean | null;
every: number | null;
batch: boolean;
api_name: string | null;
cancels: number[];
types: DependencyTypes;
collects_event_data: boolean;
pending_request?: boolean;
trigger_after?: number;
trigger_only_on_success?: boolean;
trigger_mode: "once" | "multiple" | "always_last";
final_event: Payload | null;
show_api: boolean;
zerogpu?: boolean;
rendered_in: number | null;
}
export interface DependencyTypes {
continuous: boolean;
generator: boolean;
cancel: boolean;
}
export interface Payload {
fn_index: number;
data: unknown[];
time?: Date;
event_data?: unknown;
trigger_id?: number | null;
}
export interface PostResponse {
error?: string;
[x: string]: any;
}
export interface UploadResponse {
error?: string;
files?: string[];
}
export interface DuplicateOptions extends ClientOptions {
private?: boolean;
hardware?: (typeof hardware_types)[number];
timeout?: number;
}
export interface ClientOptions {
hf_token?: `hf_${string}`;
status_callback?: SpaceStatusCallback | null;
auth?: [string, string] | null;
with_null_state?: boolean;
events?: EventType[];
}
export interface FileData {
name: string;
orig_name?: string;
size?: number;
data: string;
blob?: File;
is_file?: boolean;
mime_type?: string;
alt_text?: string;
}
export type EventType = "data" | "status" | "log" | "render";
export interface EventMap {
data: PayloadMessage;
status: StatusMessage;
log: LogMessage;
render: RenderMessage;
}
export type GradioEvent = {
[P in EventType]: EventMap[P];
}[EventType];
export interface Log {
log: string;
level: "warning" | "info";
}
export interface Render {
data: {
components: any[];
layout: any;
dependencies: Dependency[];
render_id: number;
};
}
export interface Status {
queue: boolean;
code?: string;
success?: boolean;
stage: "pending" | "error" | "complete" | "generating";
broken?: boolean;
size?: number;
position?: number;
eta?: number;
message?: string;
progress_data?: {
progress: number | null;
index: number | null;
length: number | null;
unit: string | null;
desc: string | null;
}[];
time?: Date;
changed_state_ids?: number[];
}
export interface StatusMessage extends Status {
type: "status";
endpoint: string;
fn_index: number;
}
export interface PayloadMessage extends Payload {
type: "data";
endpoint: string;
fn_index: number;
}
export interface LogMessage extends Log {
type: "log";
endpoint: string;
fn_index: number;
}
export interface RenderMessage extends Render {
type: "render";
endpoint: string;
fn_index: number;
}
export {};
//# sourceMappingURL=types.d.ts.map