import { ContractFactory } from '../ContractFactory';
import { BrandedString, EthereumAddress } from '@streamr/utils';
import type { IERC1271 as ERC1271Contract } from '../ethereumArtifacts/IERC1271';
import { StrictStreamrClientConfig } from '../Config';
export declare const SUCCESS_MAGIC_VALUE = "0x1626ba7e";
export type CacheKey = BrandedString<string>;
export declare const InstantiateERC1271ContractsToken: unique symbol;
export declare function createNewInstantiateContractsFn(contractFactory: ContractFactory, config: Pick<StrictStreamrClientConfig, 'contracts'>): (address: EthereumAddress) => ERC1271Contract[];
export declare class ERC1271ContractFacade {
    private readonly contractsByAddress;
    private readonly publisherCache;
    constructor(instantiateContracts: (address: EthereumAddress) => ERC1271Contract[]);
    isValidSignature(contractAddress: EthereumAddress, payload: Uint8Array, signature: Uint8Array): Promise<boolean>;
}
