/** * @module Utilities */ import { type StandardSchemaV1 } from "@standard-schema/spec"; import { type Invocable } from "../../utilities/functions/invocable.js"; import { type OneOrMore } from "../../utilities/functions/resolve-one-or-more.js"; import { type AnyClass } from "../../utilities/types/_module.js"; /** * IMPORT_PATH: `"@daiso-tech/core/utilities"` * @group Utilities */ export type ErrorPolicyBoolSetting = { /** * If true will treat false return values as errors. * You can use this with `retry` middleware to rerun functions that return false. */ treatFalseAsError: boolean; }; /** * @internal */ export declare function isErrorPolicyBoolSetting(value: unknown): value is ErrorPolicyBoolSetting; /** * The `ErrorPolicy` can be a predicate function, {@link StandardSchemaV1 | `StandardSchemaV1`} and a class. * * IMPORT_PATH: `"@daiso-tech/core/utilities"` * @group Utilities */ export type ErrorPolicy = Invocable<[error: TError], boolean> | StandardSchemaV1 | OneOrMore | ErrorPolicyBoolSetting; /** * IMPORT_PATH: `"@daiso-tech/core/utilities"` * @group Utilities */ export type ErrorPolicySettings = { /** * You can choose what errors you want to retry. By default all erros will be retried. * * @default * ```ts * (_error: unknown) => true * ``` */ errorPolicy?: ErrorPolicy; }; /** * @internal */ export declare function callErrorPolicyOnValue(errorPolicy: ErrorPolicy | undefined, value: TValue): boolean; /** * @internal */ export declare function callErrorPolicyOnThrow(errorPolicy: ErrorPolicy | undefined, error: TError): Promise;