import type { ChainId, MutationError, Query } from "@reactive-dot/core"; import type { MutationEvent as BaseMutationEvent, ChainDescriptorOf, Falsy, InferQueryPayload, QueryInstruction, } from "@reactive-dot/core/internal.js"; import type { TxEvent } from "polkadot-api"; import type { MaybeRef, MaybeRefOrGetter, Ref } from "vue"; export type ChainComposableOptions< TChainId extends ChainId | undefined = ChainId | undefined, > = { /** * Override default chain ID */ chainId?: MaybeRefOrGetter; }; type DeepReadonly = { [P in keyof T]: Readonly }; export type MutableAsyncState = { data: Ref; error: Ref; status: Ref<"idle" | "pending" | "success" | "error">; }; export type AsyncState< TData, TError = unknown, TDefault = undefined, > = DeepReadonly> & { refresh: () => void; }; export type PromiseLikeAsyncState = AsyncState< TData, TError > & PromiseLike>; export type MutationEvent = BaseMutationEvent & ( | { status: "pending" } | { status: "error"; error: MutationError } | { status: "success"; data: TxEvent } ); export type QueryArgument = MaybeRef< | Query> | Falsy | (( query: Query<[], ChainDescriptorOf>, ) => Query> | Falsy) >; type MaybeFalsy = T | Falsy; export type InferQueryArgumentResult< TChainId extends ChainId | undefined, TQuery extends QueryArgument, > = TQuery extends MaybeRef ? Q extends MaybeFalsy ? QT extends Query ? InferQueryPayload : QT extends (...args: never[]) => MaybeFalsy ? QTR extends Query ? InferQueryPayload : never : never : never : never; export type BackwardCompatInputOptions = | { input: T; } | { /** @deprecated Use `input` instead. */ variables: T; };