import { FunctionSignature } from "./types/vm.cjs";
import { BaseTm2Provider, Provider } from "@gnolang/tm2-js-client";

//#region src/provider/provider.d.ts
/**
 * GnoProvider is the Provider interface for Gno-specific functionality
 */
interface GnoProvider extends Provider {
  /**
   * Executes the Render(<path>) method in read-only mode
   * @param {string} packagePath the gno package path
   * @param {string} path the render path
   * @param {number} [height=0] the height for querying.
   */
  getRenderOutput(packagePath: string, path: string, height?: number): Promise<string>;
  /**
   * Fetches public facing function signatures
   * @param {string} packagePath the gno package path
   * @param {number} [height=0] the height for querying.
   */
  getFunctionSignatures(packagePath: string, height?: number): Promise<FunctionSignature[]>;
  /**
   * Evaluates any expression in readonly mode and returns the results
   * @param {string} packagePath the gno package path
   * @param {string} expression the expression to be evaluated
   * @param {number} [height=0] the height for querying.
   */
  evaluateExpression(packagePath: string, expression: string, height?: number): Promise<string>;
  /**
   * Fetches the file content, or the list of files if the path is a directory
   * @param {string} packagePath the gno package path
   * @param {number} [height=0] the height for querying.
   */
  getFileContent(packagePath: string, height?: number): Promise<string>;
}
/**
 * Base implementation of GnoProvider backed by a Tm2Client.
 * Provides all VM query methods; subclasses only need a static `create()` factory.
 */
declare abstract class BaseGnoProvider extends BaseTm2Provider implements GnoProvider {
  private abciQuery;
  evaluateExpression(packagePath: string, expression: string, height?: number): Promise<string>;
  getFileContent(packagePath: string, height?: number): Promise<string>;
  getFunctionSignatures(packagePath: string, height?: number): Promise<FunctionSignature[]>;
  getRenderOutput(packagePath: string, path: string, height?: number): Promise<string>;
  getRealmPaths(prefix: string): Promise<string[]>;
}
//#endregion
export { BaseGnoProvider, GnoProvider };
//# sourceMappingURL=provider.d.cts.map