import type { Fr } from '@aztec/foundation/curves/bn254'; import { type ZodFor } from '@aztec/foundation/schemas'; import { BufferReader, FieldReader } from '@aztec/foundation/serialize'; import type { ABIParameter } from './abi.js'; import { Selector } from './selector.js'; /** Function selector branding */ export interface FunctionSelector { /** Brand. */ _branding: 'FunctionSelector'; } /** A function selector is the first 4 bytes of the hash of a function signature. */ export declare class FunctionSelector extends Selector { /** * Deserializes from a buffer or reader, corresponding to a write in cpp. * @param buffer - Buffer or BufferReader to read from. * @returns The Selector. */ static fromBuffer(buffer: Buffer | BufferReader): FunctionSelector; /** * Converts a field to selector. * @param fr - The field to convert. * @returns The selector. */ static fromField(fr: Fr): FunctionSelector; static fromFieldOrUndefined(fr: Fr): FunctionSelector | undefined; static fromFields(fields: Fr[] | FieldReader): FunctionSelector; /** * Creates a selector from a signature. * @param signature - Signature to generate the selector for (e.g. "transfer(field,field)"). * @returns selector. */ static fromSignature(signature: string): Promise; /** * Create a Selector instance from a hex-encoded string. * * @param selector - The hex-encoded string representing the Selector. * @returns An Selector instance. * @throws If the selector length is invalid. */ static fromString(selector: string): FunctionSelector; /** * Creates an empty selector. * @returns An empty selector. */ static empty(): FunctionSelector; /** * Creates a function selector for a given function name and parameters. * @param name - The name of the function. * @param parameters - An array of ABIParameter objects, each containing the type information of a function parameter. * @returns A Buffer containing the 4-byte selector. */ static fromNameAndParameters(args: { name: string; parameters: ABIParameter[]; }): Promise; static fromNameAndParameters(name: string, parameters: ABIParameter[]): Promise; /** * Creates a random instance. */ static random(): FunctionSelector; toJSON(): string; static get schema(): ZodFor; } //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZnVuY3Rpb25fc2VsZWN0b3IuZC50cyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9hYmkvZnVuY3Rpb25fc2VsZWN0b3IudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBR0EsT0FBTyxLQUFLLEVBQUUsRUFBRSxFQUFFLE1BQU0sZ0NBQWdDLENBQUM7QUFDekQsT0FBTyxFQUFFLEtBQUssTUFBTSxFQUFnQixNQUFNLDJCQUEyQixDQUFDO0FBQ3RFLE9BQU8sRUFBRSxZQUFZLEVBQUUsV0FBVyxFQUFnQixNQUFNLDZCQUE2QixDQUFDO0FBRXRGLE9BQU8sS0FBSyxFQUFFLFlBQVksRUFBRSxNQUFNLFVBQVUsQ0FBQztBQUU3QyxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBSXpDLGlDQUFpQztBQUNqQyxNQUFNLFdBQVcsZ0JBQWdCO0lBQy9CLGFBQWE7SUFDYixTQUFTLEVBQUUsa0JBQWtCLENBQUM7Q0FDL0I7QUFFRCxvRkFBb0Y7QUFDcEYscUJBQWEsZ0JBQWlCLFNBQVEsUUFBUTtJQUM1Qzs7OztPQUlHO0lBQ0gsTUFBTSxDQUFDLFVBQVUsQ0FBQyxNQUFNLEVBQUUsTUFBTSxHQUFHLFlBQVksb0JBSTlDO0lBRUQ7Ozs7T0FJRztJQUNILE1BQU0sQ0FBQyxTQUFTLENBQUMsRUFBRSxFQUFFLEVBQUUsb0JBRXRCO0lBRUQsTUFBTSxDQUFDLG9CQUFvQixDQUFDLEVBQUUsRUFBRSxFQUFFLGdDQU1qQztJQUVELE1BQU0sQ0FBQyxVQUFVLENBQUMsTUFBTSxFQUFFLEVBQUUsRUFBRSxHQUFHLFdBQVcsb0JBRzNDO0lBRUQ7Ozs7T0FJRztJQUNILE9BQWEsYUFBYSxDQUFDLFNBQVMsRUFBRSxNQUFNLDZCQVMzQztJQUVEOzs7Ozs7T0FNRztJQUNILE1BQU0sQ0FBQyxVQUFVLENBQUMsUUFBUSxFQUFFLE1BQU0sb0JBTWpDO0lBRUQ7OztPQUdHO0lBQ0gsTUFBTSxDQUFDLEtBQUsscUJBRVg7SUFFRDs7Ozs7T0FLRztJQUNILE1BQU0sQ0FBQyxxQkFBcUIsQ0FBQyxJQUFJLEVBQUU7UUFBRSxJQUFJLEVBQUUsTUFBTSxDQUFDO1FBQUMsVUFBVSxFQUFFLFlBQVksRUFBRSxDQUFBO0tBQUUsR0FBRyxPQUFPLENBQUMsZ0JBQWdCLENBQUMsQ0FBQztJQUM1RyxNQUFNLENBQUMscUJBQXFCLENBQUMsSUFBSSxFQUFFLE1BQU0sRUFBRSxVQUFVLEVBQUUsWUFBWSxFQUFFLEdBQUcsT0FBTyxDQUFDLGdCQUFnQixDQUFDLENBQUM7SUFjbEc7O09BRUc7SUFDSCxNQUFNLENBQUMsTUFBTSxxQkFFWjtJQUVELE1BQU0sV0FFTDtJQUVELE1BQU0sS0FBSyxNQUFNLElBQUksTUFBTSxDQUFDLGdCQUFnQixDQUFDLENBRTVDO0NBQ0YifQ==