import type { tools as ToolsNamespace } from '../vendor/wasm-tools.js';
/**
 * Generate WIT metadata for a given world
 *
 * @param worldWitSpecifier - WIT specifier for the selected world
 * @param [worldName] - the world name
 * @returns WIT metadata for the provided world
 */
export declare function componentWitMetadataForWorld(worldWitSpecifier: ToolsNamespace.WitSpecifier, worldName: string | undefined): Promise<ToolsNamespace.WitMetadata>;
/**
 * Retrieve metadata given a WebAssembly component binary
 *
 * @param bytes - WebAssembly component bytes
 * @returns module metadata for the provided component
 */
export declare function metadataShow(bytes: Uint8Array): Promise<ToolsNamespace.ModuleMetadata[]>;
/**
 * Print WebAssembly Text format (WAT) for a given WebAssembly component
 *
 * @param bytes - WebAssembly component bytes
 * @returns WAT for the provided component
 */
export declare function print(bytes: Uint8Array): Promise<string>;
/**
 * Parse WebAssembly Text format (WAT) into a WebAssembly component
 *
 * @param wat - A component in WAT format
 * @returns WebAssembly component bytes
 */
export declare function parse(wat: string): Promise<Uint8Array>;
/**
 * Create a new component from a core WebAssembly module
 *
 * @param bytes - WebAssembly module bytes
 * @param adapters - Adapters that should be used on the given module
 * @returns WebAssembly component bytes
 */
export declare function componentNew(bytes: Uint8Array, adapters: Array<[string, Uint8Array]> | undefined): Promise<Uint8Array>;
/**
 * Retrieve the WIT as a string from a given component
 *
 * @param bytes - WebAssembly component bytes
 * @returns Component WIT as a string
 */
export declare function componentWit(bytes: Uint8Array): Promise<string>;
/**
 * Embed WIT metadata in a given WebAssembly binary
 *
 * @param opts - options or performing the embedding
 * @returns WebAssembly binary bytes with WIT metadata embedded
 */
export declare function componentEmbed(opts: ToolsNamespace.EmbedOpts): Promise<Uint8Array>;
/**
 * Add provided metadata to a given WebAssembly component
 *
 * @param bytes - WebAssembly component bytes
 * @param producerMetadata - producer metadata to add to the component
 * @returns WebAssembly binary bytes with WIT metadata embedded
 */
export declare function metadataAdd(bytes: Uint8Array, metadata: ToolsNamespace.ProducersFields): Promise<Uint8Array>;
