import type { LocalAccount } from 'viem/accounts'; import type * as Auth from '../../../internal/Auth.js'; import type * as Db from '../../../db/Db.js'; import type * as Mpp from '../Mpp.js'; /** Resolves the chain declared by a Tempo charge challenge. */ export declare function chainId(input: Mpp.RelayInput): number | undefined; /** Whether a Tempo charge credential requests platform fee sponsorship. */ export declare function requiresFeePayer(input: Mpp.RelayInput): boolean; /** Refuses credentials outside the chains served by this API deployment. */ export declare function assertSupportedChain(options: assertSupportedChain.Options): void; export declare namespace assertSupportedChain { /** Chain-selection inputs. */ type Options = { /** Resolved credential chain. */ chainId: number; /** Chains served by this API deployment. */ supportedChainIds: ReadonlySet; }; } /** Authorizes managed fee sponsorship for one broadcast request. */ export declare function authorizeFeePayer(options: authorizeFeePayer.Options): Promise; export declare namespace authorizeFeePayer { /** Dependencies used to authorize managed fee sponsorship. */ type Options = { /** Credential chain. */ chainId: number; /** Primary database for authoritative billing enforcement. */ db: Db.Db; /** Managed fee-payer account, when configured. */ feePayer?: LocalAccount | undefined; /** MPP credential being broadcast. */ input: Mpp.RelayInput; /** Authenticated request principal. */ principal?: Auth.Principal | undefined; }; } /** Raised when an MPP credential selects a chain this deployment does not serve. */ export declare class UnsupportedChainError extends Error { name: string; constructor(chainId: number); } /** Raised when a caller is not eligible for managed fee sponsorship. */ export declare class PolicyDeniedError extends Error { name: string; } //# sourceMappingURL=Policy.d.ts.map