import { AztecAddress } from '@aztec/aztec.js/addresses';
import { type AbiType, type AztecAddressLike, type ContractArtifact, EventSelector, type FieldLike, type OptionLike } from '@aztec/aztec.js/abi';
import { ContractBase, ContractFunctionInteraction, type ContractMethod, type DeployInstantiationOptions, DeployMethod } from '@aztec/aztec.js/contracts';
import type { Wallet } from '@aztec/aztec.js/wallet';
export declare const CustomMessageContractArtifact: ContractArtifact;
export type MultiLogEvent = {
    value0: FieldLike;
    value1: FieldLike;
    value2: FieldLike;
    value3: FieldLike;
};
/**
 * Type-safe interface for contract CustomMessage;
 */
export declare class CustomMessageContract extends ContractBase {
    private constructor();
    /**
     * Creates a contract instance.
     * @param address - The deployed contract's address.
     * @param wallet - The wallet to use when interacting with the contract.
     * @returns A new Contract instance.
     */
    static at(address: AztecAddress, wallet: Wallet): CustomMessageContract;
    /**
     * Creates a tx to deploy a new instance of this contract.
     * @param instantiation - Optional address-affecting parameters (salt, deployer / universalDeploy, publicKeys).
     *                       Salt defaults to a random value; the deployer is locked lazily from the first send-time `from`.
     */
    static deploy(wallet: Wallet, instantiation?: DeployInstantiationOptions): DeployMethod<CustomMessageContract>;
    /**
     * Creates a tx to deploy a new instance of this contract using the specified constructor method.
     */
    static deployWithOpts<M extends keyof CustomMessageContract['methods']>(opts: {
        method?: M;
        wallet: Wallet;
        instantiation?: DeployInstantiationOptions;
    }, ...args: Parameters<CustomMessageContract['methods'][M]>): DeployMethod<CustomMessageContract>;
    /**
     * Returns this contract's artifact.
     */
    static get artifact(): ContractArtifact;
    /**
     * Returns this contract's artifact with public bytecode.
     */
    static get artifactForPublic(): ContractArtifact;
    /** Type-safe wrappers for the public methods exposed by the contract. */
    methods: {
        /** emit_multi_log_event(value0: field, value1: field, value2: field, value3: field, recipient: struct) */
        emit_multi_log_event: ((value0: FieldLike, value1: FieldLike, value2: FieldLike, value3: FieldLike, recipient: AztecAddressLike) => ContractFunctionInteraction) & Pick<ContractMethod, 'selector'>;
        /** offchain_receive(messages: struct) */
        offchain_receive: ((messages: {
            ciphertext: FieldLike[];
            recipient: AztecAddressLike;
            tx_hash: OptionLike<FieldLike>;
            anchor_block_timestamp: (bigint | number);
        }[]) => ContractFunctionInteraction) & Pick<ContractMethod, 'selector'>;
        /** public_dispatch(selector: field) */
        public_dispatch: ((selector: FieldLike) => ContractFunctionInteraction) & Pick<ContractMethod, 'selector'>;
        /** sync_state(scope: struct) */
        sync_state: ((scope: AztecAddressLike) => ContractFunctionInteraction) & Pick<ContractMethod, 'selector'>;
    };
    static get events(): {
        MultiLogEvent: {
            abiType: AbiType;
            eventSelector: EventSelector;
            fieldNames: string[];
        };
    };
}
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiQ3VzdG9tTWVzc2FnZS5kLnRzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vc3JjL0N1c3RvbU1lc3NhZ2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBSUEsT0FBTyxFQUFFLFlBQVksRUFBbUIsTUFBTSwyQkFBMkIsQ0FBQztBQUMxRSxPQUFPLEVBQUUsS0FBSyxPQUFPLEVBQUUsS0FBSyxnQkFBZ0IsRUFBRSxLQUFLLGdCQUFnQixFQUFFLGFBQWEsRUFBc0MsS0FBSyxTQUFTLEVBQTZHLEtBQUssVUFBVSxFQUF3QyxNQUFNLHFCQUFxQixDQUFDO0FBQ3RVLE9BQU8sRUFBWSxZQUFZLEVBQUUsMkJBQTJCLEVBQUUsS0FBSyxjQUFjLEVBQThCLEtBQUssMEJBQTBCLEVBQUUsWUFBWSxFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFJaE0sT0FBTyxLQUFLLEVBQUUsTUFBTSxFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFFckQsZUFBTyxNQUFNLDZCQUE2QixrQkFBa0YsQ0FBQztBQUd2SCxNQUFNLE1BQU0sYUFBYSxHQUFHO0lBQzFCLE1BQU0sRUFBRSxTQUFTLENBQUE7SUFDekIsTUFBTSxFQUFFLFNBQVMsQ0FBQTtJQUNqQixNQUFNLEVBQUUsU0FBUyxDQUFBO0lBQ2pCLE1BQU0sRUFBRSxTQUFTLENBQUE7Q0FDVixDQUFBO0FBR1A7O0dBRUc7QUFDSCxxQkFBYSxxQkFBc0IsU0FBUSxZQUFZO0lBRXJELE9BQU8sZUFLTjtJQUlEOzs7OztPQUtHO0lBQ0gsT0FBYyxFQUFFLENBQ2QsT0FBTyxFQUFFLFlBQVksRUFDckIsTUFBTSxFQUFFLE1BQU0sR0FDYixxQkFBcUIsQ0FFdkI7SUFHRDs7OztPQUlHO0lBQ0gsT0FBYyxNQUFNLENBQUMsTUFBTSxFQUFFLE1BQU0sRUFBRSxhQUFhLENBQUMsRUFBRSwwQkFBMEIsdUNBVTlFO0lBRUQ7O09BRUc7SUFDSCxPQUFjLGNBQWMsQ0FBQyxDQUFDLFNBQVMsTUFBTSxxQkFBcUIsQ0FBQyxTQUFTLENBQUMsRUFDM0UsSUFBSSxFQUFFO1FBQUUsTUFBTSxDQUFDLEVBQUUsQ0FBQyxDQUFDO1FBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQztRQUFDLGFBQWEsQ0FBQyxFQUFFLDBCQUEwQixDQUFBO0tBQUUsRUFDaEYsR0FBRyxJQUFJLEVBQUUsVUFBVSxDQUFDLHFCQUFxQixDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLHVDQVl6RDtJQUlEOztPQUVHO0lBQ0gsV0FBa0IsUUFBUSxJQUFJLGdCQUFnQixDQUU3QztJQUVEOztPQUVHO0lBQ0gsV0FBa0IsaUJBQWlCLElBQUksZ0JBQWdCLENBRXREO0lBS0QseUVBQXlFO0lBQzFELE9BQU8sRUFBRTtRQUV0QiwwR0FBMEc7UUFDMUcsb0JBQW9CLEVBQUUsQ0FBQyxDQUFDLE1BQU0sRUFBRSxTQUFTLEVBQUUsTUFBTSxFQUFFLFNBQVMsRUFBRSxNQUFNLEVBQUUsU0FBUyxFQUFFLE1BQU0sRUFBRSxTQUFTLEVBQUUsU0FBUyxFQUFFLGdCQUFnQixLQUFLLDJCQUEyQixDQUFDLEdBQUcsSUFBSSxDQUFDLGNBQWMsRUFBRSxVQUFVLENBQUMsQ0FBQztRQUVwTSx5Q0FBeUM7UUFDekMsZ0JBQWdCLEVBQUUsQ0FBQyxDQUFDLFFBQVEsRUFBRTtZQUFFLFVBQVUsRUFBRSxTQUFTLEVBQUUsQ0FBQztZQUFDLFNBQVMsRUFBRSxnQkFBZ0IsQ0FBQztZQUFDLE9BQU8sRUFBRSxVQUFVLENBQUMsU0FBUyxDQUFDLENBQUM7WUFBQyxzQkFBc0IsRUFBRSxDQUFDLE1BQU0sR0FBRyxNQUFNLENBQUMsQ0FBQTtTQUFFLEVBQUUsS0FBSywyQkFBMkIsQ0FBQyxHQUFHLElBQUksQ0FBQyxjQUFjLEVBQUUsVUFBVSxDQUFDLENBQUM7UUFFeE8sdUNBQXVDO1FBQ3ZDLGVBQWUsRUFBRSxDQUFDLENBQUMsUUFBUSxFQUFFLFNBQVMsS0FBSywyQkFBMkIsQ0FBQyxHQUFHLElBQUksQ0FBQyxjQUFjLEVBQUUsVUFBVSxDQUFDLENBQUM7UUFFM0csZ0NBQWdDO1FBQ2hDLFVBQVUsRUFBRSxDQUFDLENBQUMsS0FBSyxFQUFFLGdCQUFnQixLQUFLLDJCQUEyQixDQUFDLEdBQUcsSUFBSSxDQUFDLGNBQWMsRUFBRSxVQUFVLENBQUMsQ0FBQztLQUMzRyxDQUFDO0lBR0EsV0FBa0IsTUFBTSxJQUFJO1FBQUUsYUFBYSxFQUFFO1lBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQztZQUFDLGFBQWEsRUFBRSxhQUFhLENBQUM7WUFBQyxVQUFVLEVBQUUsTUFBTSxFQUFFLENBQUE7U0FBRSxDQUFBO0tBQUUsQ0FxQ3ZIO0NBRUYifQ==