import { CustomError } from "@rarible/utils";
import type { Layer1ful } from "../../common/common.js";
import type { BlockchainLayer1Enum } from "../../union/enum/domain.js";
import type { AptosAddress } from "../address/index.js";
/**
 * Represents function address in Aptos
 *
 * @example 0x1234::coin::swap
 * @see https://aptos.dev/concepts/resources
 */
export type AptosFunctionAddress = Layer1ful<BlockchainLayer1Enum.APTOS> & {
    __IS_APTOS_FUNCTION_ADDRESS__: true;
};
export declare const aptosFunctionAddressRegexp: RegExp;
export declare function isAptosFunctionAddress(raw: string): raw is AptosFunctionAddress;
export declare function toAptosFunctionAddress(raw: string): AptosFunctionAddress;
export declare function toAptosFunctionAddressSafe(raw: string): AptosFunctionAddress | undefined;
export type AptosFunctionAddressData = {
    resource: AptosAddress;
    moduleName: string;
    functionName: string;
};
export declare function parseAptosFunctionAddress(str: string): AptosFunctionAddressData;
export declare function parseAptosFunctionAddressSafe(str: string): AptosFunctionAddressData | undefined;
export declare class InvalidAptosFunctionAddressError extends CustomError {
    constructor(str: string);
}
/**
 * Generates random Aptos function address
 *
 * @example 0xeeff357ea5c1a4e7bc11b2b17ff2dc2dcca69750bfef1e1ebcaccf8c8018175b::coin::swap
 */
export declare function randomAptosFunctionAddress(): string;
export declare function randomAptosFunctionName(): string;
