import type { PolicyId, PolicySpec } from '@core/types/policy'; import { type Address, type Hex, type PublicClient, type WalletClient } from 'viem'; type InitializeContractArgs = { factory: Address; entrypoint: string; policyCid: string; schemaCid: string; /** Empty for a pure-Rego policy. */ wasmCid: string; /** Empty unless `wasmCid` is set. */ secretsSchemaCid: string; metadataCid: string; owner: Address; }; /** * Args for `initialize`. Callers must supply the policy code hash one of two ways: * * - `policyCodeHash`: pre-computed `keccak256` of the Rego policy bytes (e.g. read from * `policy_cids.json` or another out-of-band source). Takes precedence when both are set. * - `policyBytes`: the raw Rego policy bytes — the SDK computes `keccak256` for you. Use * this when fetching from IPFS via `policyCid`, reading a local file, or any other * transport. Bringing the bytes lets the SDK stay browser/edge friendly without taking * an opinion on an IPFS gateway. * * Mirrors the resolution strategy in `newton-cli` (`commands/policy.rs`). */ export type InitializePolicyArgs = InitializeContractArgs & ({ policyCodeHash: Hex; } | { policyBytes: Uint8Array; }); type InitializeArgs = InitializePolicyArgs & { walletClient: WalletClient; policyContractAddress: Address; }; export declare const policyWriteFunctions: { initialize: ({ walletClient, policyContractAddress, ...args }: InitializeArgs) => Promise<`0x${string}`>; setPolicies: ({ walletClient, publicClient, policyClientAddress, policies, }: { walletClient: WalletClient; publicClient: PublicClient; policyClientAddress: Address; policies: PolicySpec[]; }) => Promise<{ txHash: Hex; policyId: PolicyId; }>; setSecretsSchemaCid: ({ walletClient, policyContractAddress, secretsSchemaCid, }: { walletClient: WalletClient; policyContractAddress: Address; secretsSchemaCid: string; }) => Promise<`0x${string}`>; renounceOwnership: ({ walletClient, policyContractAddress, }: { walletClient: WalletClient; policyContractAddress: Address; }) => Promise<`0x${string}`>; transferOwnership: ({ walletClient, policyContractAddress, ...args }: { walletClient: WalletClient; policyContractAddress: Address; newOwner: Address; }) => Promise<`0x${string}`>; }; export declare const policyReadFunctions: { getPolicyId: ({ publicClient, policyContractAddress, client, }: { publicClient: PublicClient; policyContractAddress: Address; client: Address; }) => Promise<`0x${string}`>; getPolicyConfig: ({ publicClient, policyContractAddress, policyId, }: { publicClient: PublicClient; policyContractAddress: Address; policyId: `0x${string}`; }) => Promise<{ policyParams: string | object; policyParamsHex: `0x${string}`; expireAfter: number; }>; supportsInterface: ({ publicClient, policyContractAddress, interfaceId, }: { publicClient: PublicClient; policyContractAddress: Address; interfaceId: `0x${string}`; }) => Promise; owner: ({ publicClient, policyContractAddress, }: { publicClient: PublicClient; policyContractAddress: Address; }) => Promise
; factory: ({ publicClient, policyContractAddress, }: { publicClient: PublicClient; policyContractAddress: Address; }) => Promise
; entrypoint: ({ publicClient, policyContractAddress, }: { publicClient: PublicClient; policyContractAddress: Address; }) => Promise; clientToPolicyId: ({ publicClient, policyContractAddress, client, }: { publicClient: PublicClient; policyContractAddress: Address; client: Address; }) => Promise<`0x${string}`>; getEntrypoint: ({ publicClient, policyContractAddress, }: { publicClient: PublicClient; policyContractAddress: Address; }) => Promise; getMetadataCid: ({ publicClient, policyContractAddress, }: { publicClient: PublicClient; policyContractAddress: Address; }) => Promise; getPolicyCid: ({ publicClient, policyContractAddress, }: { publicClient: PublicClient; policyContractAddress: Address; }) => Promise; getWasmCid: ({ publicClient, policyContractAddress, }: { publicClient: PublicClient; policyContractAddress: Address; }) => Promise; getSecretsSchemaCid: ({ publicClient, policyContractAddress, }: { publicClient: PublicClient; policyContractAddress: Address; }) => Promise; getSchemaCid: ({ publicClient, policyContractAddress, }: { publicClient: PublicClient; policyContractAddress: Address; }) => Promise; isPolicy: ({ publicClient, policyFactoryAddress, policy, }: { publicClient: PublicClient; policyFactoryAddress: Address; policy: Address; }) => Promise; isPolicyVerified: ({ publicClient, policyContractAddress, }: { publicClient: PublicClient; policyContractAddress: Address; }) => Promise; getPolicies: ({ publicClient, policyClientAddress, }: { publicClient: PublicClient; policyClientAddress: Address; }) => Promise; getPolicySetSnapshot: ({ publicClient, policyClientAddress, }: { publicClient: PublicClient; policyClientAddress: Address; }) => Promise<{ policyId: Hex; revision: bigint; policies: PolicySpec[]; }>; policyRevision: ({ publicClient, policyClientAddress, }: { publicClient: PublicClient; policyClientAddress: Address; }) => Promise; metadataCid: ({ publicClient, policyContractAddress, }: { publicClient: PublicClient; policyContractAddress: Address; }) => Promise; policyCid: ({ publicClient, policyContractAddress, }: { publicClient: PublicClient; policyContractAddress: Address; }) => Promise; schemaCid: ({ publicClient, policyContractAddress, }: { publicClient: PublicClient; policyContractAddress: Address; }) => Promise; precomputePolicyId: (args: { chainId: number | bigint; client: Address; revision: number | bigint; policies: PolicySpec[]; }) => PolicyId; }; export declare const policyFunctions: { initialize: ({ walletClient, policyContractAddress, ...args }: InitializeArgs) => Promise<`0x${string}`>; setPolicies: ({ walletClient, publicClient, policyClientAddress, policies, }: { walletClient: WalletClient; publicClient: PublicClient; policyClientAddress: Address; policies: PolicySpec[]; }) => Promise<{ txHash: Hex; policyId: PolicyId; }>; setSecretsSchemaCid: ({ walletClient, policyContractAddress, secretsSchemaCid, }: { walletClient: WalletClient; policyContractAddress: Address; secretsSchemaCid: string; }) => Promise<`0x${string}`>; renounceOwnership: ({ walletClient, policyContractAddress, }: { walletClient: WalletClient; policyContractAddress: Address; }) => Promise<`0x${string}`>; transferOwnership: ({ walletClient, policyContractAddress, ...args }: { walletClient: WalletClient; policyContractAddress: Address; newOwner: Address; }) => Promise<`0x${string}`>; getPolicyId: ({ publicClient, policyContractAddress, client, }: { publicClient: PublicClient; policyContractAddress: Address; client: Address; }) => Promise<`0x${string}`>; getPolicyConfig: ({ publicClient, policyContractAddress, policyId, }: { publicClient: PublicClient; policyContractAddress: Address; policyId: `0x${string}`; }) => Promise<{ policyParams: string | object; policyParamsHex: `0x${string}`; expireAfter: number; }>; supportsInterface: ({ publicClient, policyContractAddress, interfaceId, }: { publicClient: PublicClient; policyContractAddress: Address; interfaceId: `0x${string}`; }) => Promise; owner: ({ publicClient, policyContractAddress, }: { publicClient: PublicClient; policyContractAddress: Address; }) => Promise
; factory: ({ publicClient, policyContractAddress, }: { publicClient: PublicClient; policyContractAddress: Address; }) => Promise
; entrypoint: ({ publicClient, policyContractAddress, }: { publicClient: PublicClient; policyContractAddress: Address; }) => Promise; clientToPolicyId: ({ publicClient, policyContractAddress, client, }: { publicClient: PublicClient; policyContractAddress: Address; client: Address; }) => Promise<`0x${string}`>; getEntrypoint: ({ publicClient, policyContractAddress, }: { publicClient: PublicClient; policyContractAddress: Address; }) => Promise; getMetadataCid: ({ publicClient, policyContractAddress, }: { publicClient: PublicClient; policyContractAddress: Address; }) => Promise; getPolicyCid: ({ publicClient, policyContractAddress, }: { publicClient: PublicClient; policyContractAddress: Address; }) => Promise; getWasmCid: ({ publicClient, policyContractAddress, }: { publicClient: PublicClient; policyContractAddress: Address; }) => Promise; getSecretsSchemaCid: ({ publicClient, policyContractAddress, }: { publicClient: PublicClient; policyContractAddress: Address; }) => Promise; getSchemaCid: ({ publicClient, policyContractAddress, }: { publicClient: PublicClient; policyContractAddress: Address; }) => Promise; isPolicy: ({ publicClient, policyFactoryAddress, policy, }: { publicClient: PublicClient; policyFactoryAddress: Address; policy: Address; }) => Promise; isPolicyVerified: ({ publicClient, policyContractAddress, }: { publicClient: PublicClient; policyContractAddress: Address; }) => Promise; getPolicies: ({ publicClient, policyClientAddress, }: { publicClient: PublicClient; policyClientAddress: Address; }) => Promise; getPolicySetSnapshot: ({ publicClient, policyClientAddress, }: { publicClient: PublicClient; policyClientAddress: Address; }) => Promise<{ policyId: Hex; revision: bigint; policies: PolicySpec[]; }>; policyRevision: ({ publicClient, policyClientAddress, }: { publicClient: PublicClient; policyClientAddress: Address; }) => Promise; metadataCid: ({ publicClient, policyContractAddress, }: { publicClient: PublicClient; policyContractAddress: Address; }) => Promise; policyCid: ({ publicClient, policyContractAddress, }: { publicClient: PublicClient; policyContractAddress: Address; }) => Promise; schemaCid: ({ publicClient, policyContractAddress, }: { publicClient: PublicClient; policyContractAddress: Address; }) => Promise; precomputePolicyId: (args: { chainId: number | bigint; client: Address; revision: number | bigint; policies: PolicySpec[]; }) => PolicyId; }; export {};