import { type Chain, type Hex, type LabelhashErrorType } from 'viem'; import type { RequireChainContracts } from '../../clients/chain.js'; import { InvalidContractTypeError } from '../../errors/general.js'; export type OwnerContract = 'nameWrapper' | 'registry' | 'registrar'; export type OwnerFromContractArgs = { contract: OwnerContract; node?: Hex; labels?: string[]; } & ({ contract: Exclude; node: Hex; } | { contract: 'registrar'; labels: string[]; }); export type GetContractSpecificOwnerParametersErrorType = InvalidContractTypeError | LabelhashErrorType; export declare const getContractSpecificOwnerParameters: <_chain extends Chain>(chain: RequireChainContracts<_chain, "ensNameWrapper" | "ensLegacyRegistry" | "ensBaseRegistrarImplementation">, { contract, node, labels }: OwnerFromContractArgs) => { readonly address: `0x${string}`; readonly abi: readonly [{ readonly inputs: readonly []; readonly name: "CannotUpgrade"; readonly type: "error"; }, { readonly inputs: readonly []; readonly name: "IncompatibleParent"; readonly type: "error"; }, { readonly inputs: readonly [{ readonly name: "owner"; readonly type: "address"; }]; readonly name: "IncorrectTargetOwner"; readonly type: "error"; }, { readonly inputs: readonly []; readonly name: "IncorrectTokenType"; readonly type: "error"; }, { readonly inputs: readonly [{ readonly name: "labelHash"; readonly type: "bytes32"; }, { readonly name: "expectedLabelhash"; readonly type: "bytes32"; }]; readonly name: "LabelMismatch"; readonly type: "error"; }, { readonly inputs: readonly [{ readonly name: "label"; readonly type: "string"; }]; readonly name: "LabelTooLong"; readonly type: "error"; }, { readonly inputs: readonly []; readonly name: "LabelTooShort"; readonly type: "error"; }, { readonly inputs: readonly []; readonly name: "NameIsNotWrapped"; readonly type: "error"; }, { readonly inputs: readonly [{ readonly name: "node"; readonly type: "bytes32"; }]; readonly name: "OperationProhibited"; readonly type: "error"; }, { readonly inputs: readonly [{ readonly name: "node"; readonly type: "bytes32"; }, { readonly name: "addr"; readonly type: "address"; }]; readonly name: "Unauthorised"; readonly type: "error"; }, { readonly inputs: readonly [{ readonly name: "id"; readonly type: "uint256"; }]; readonly name: "ownerOf"; readonly outputs: readonly [{ readonly name: "owner"; readonly type: "address"; }]; readonly stateMutability: "view"; readonly type: "function"; }, { readonly inputs: readonly [{ readonly name: "node"; readonly type: "bytes32"; }]; readonly name: "owner"; readonly outputs: readonly [{ readonly name: ""; readonly type: "address"; }]; readonly stateMutability: "view"; readonly type: "function"; }]; readonly functionName: "ownerOf"; readonly args: readonly [bigint]; } | { readonly address: `0x${string}`; readonly abi: readonly [{ readonly inputs: readonly []; readonly name: "CannotUpgrade"; readonly type: "error"; }, { readonly inputs: readonly []; readonly name: "IncompatibleParent"; readonly type: "error"; }, { readonly inputs: readonly [{ readonly name: "owner"; readonly type: "address"; }]; readonly name: "IncorrectTargetOwner"; readonly type: "error"; }, { readonly inputs: readonly []; readonly name: "IncorrectTokenType"; readonly type: "error"; }, { readonly inputs: readonly [{ readonly name: "labelHash"; readonly type: "bytes32"; }, { readonly name: "expectedLabelhash"; readonly type: "bytes32"; }]; readonly name: "LabelMismatch"; readonly type: "error"; }, { readonly inputs: readonly [{ readonly name: "label"; readonly type: "string"; }]; readonly name: "LabelTooLong"; readonly type: "error"; }, { readonly inputs: readonly []; readonly name: "LabelTooShort"; readonly type: "error"; }, { readonly inputs: readonly []; readonly name: "NameIsNotWrapped"; readonly type: "error"; }, { readonly inputs: readonly [{ readonly name: "node"; readonly type: "bytes32"; }]; readonly name: "OperationProhibited"; readonly type: "error"; }, { readonly inputs: readonly [{ readonly name: "node"; readonly type: "bytes32"; }, { readonly name: "addr"; readonly type: "address"; }]; readonly name: "Unauthorised"; readonly type: "error"; }, { readonly inputs: readonly [{ readonly name: "id"; readonly type: "uint256"; }]; readonly name: "ownerOf"; readonly outputs: readonly [{ readonly name: "owner"; readonly type: "address"; }]; readonly stateMutability: "view"; readonly type: "function"; }, { readonly inputs: readonly [{ readonly name: "node"; readonly type: "bytes32"; }]; readonly name: "owner"; readonly outputs: readonly [{ readonly name: ""; readonly type: "address"; }]; readonly stateMutability: "view"; readonly type: "function"; }]; readonly functionName: "owner"; readonly args: readonly [`0x${string}`]; }; //# sourceMappingURL=ownerFromContract.d.ts.map