import { ArcjetContext, ArcjetDecision, ArcjetRequestDetails, ArcjetRule, ArcjetStack } from "./index.js"; import { Transport } from "@connectrpc/connect"; //#region src/client.d.ts export interface Client { decide(context: ArcjetContext, details: ArcjetRequestDetails, rules: ArcjetRule[]): Promise; report(context: ArcjetContext, request: ArcjetRequestDetails, decision: ArcjetDecision, rules: ArcjetRule[]): void; } export type ClientOptions = { transport: Transport; baseUrl: string; timeout: number; sdkStack: ArcjetStack; sdkVersion: string; }; /** * Default timeout for Decide API requests, in milliseconds. * * Sized to allow for API cold starts while remaining short enough that a * hung request still fails open quickly. */ export declare const DEFAULT_CLIENT_TIMEOUT_MS = 2e3; /** * Resolve the Decide API timeout. * * Any non-nullish value is used as-is, including `0`. A timeout of `0` * expires immediately, so Decide requests fail open. Negative values are * not validated here; callers should pass a positive number of milliseconds * or omit the option to use the default. * * @param timeout * Explicit timeout in milliseconds. `null` and `undefined` use * {@link DEFAULT_CLIENT_TIMEOUT_MS}. * @returns * Timeout in milliseconds. */ export declare function resolveClientTimeout(timeout?: number | null): number; /** * Compute the timeout for a `Decide` request based on the configured rules. * * @internal Exported for testing only. * @param timeout * Base timeout in milliseconds. * @param rules * Rules that will be evaluated in this request. * @returns * Adjusted timeout in milliseconds. */ export declare function decideTimeout(timeout: number, rules: ArcjetRule[]): number; export declare function createClient(options: ClientOptions): Client; //#endregion