import { ClientOptions } from "../types"; type RefKind = "Acl" | "Credentials" | "Domain" | "Number" | "Trunk"; type OwnedResource = { extended?: Record | null; } | null | undefined; type RefLookups = Record Promise>; /** One reference in a request: the request field, what it names and its value. */ type RefField = { field: string; kind: RefKind; ref?: string | null; }; type CheckRefs = (accessKeyId: string | undefined, refs: RefField[]) => Promise; /** A request's references, checked before it reaches Routr. */ type CheckRequestRefs = (request: R, accessKeyId: string | undefined) => Promise; declare function createCheckRefs(lookups: Partial): CheckRefs; /** The production lookups: Routr's API, one client per kind. */ declare function createRefLookups(clientOptions: ClientOptions): RefLookups; type Refs = Record; declare const agentRefs: (r: Refs) => RefField[]; declare const trunkRefs: (r: Refs) => RefField[]; declare const domainRefs: (r: Refs) => RefField[]; declare const numberRefs: (r: Refs) => RefField[]; /** The reference check for one resource type's requests. */ declare function refsChecker(checkRefs: CheckRefs | undefined, refsOf: (request: Refs) => RefField[]): CheckRequestRefs | undefined; export { agentRefs, CheckRefs, CheckRequestRefs, createCheckRefs, createRefLookups, domainRefs, numberRefs, RefField, RefKind, RefLookups, refsChecker, trunkRefs };