import Logger from "./logger.ts";
import { CoreOptions } from "../types/core.ts";
/**
 * Flutter-JS-SDK 核心实体
 */
declare class Core {
    _deviceReady: boolean;
    _inject: boolean;
    _logger: Logger;
    _timeout: number;
    _errorCallback?: any;
    /**
     * Core 构造方法
     * @param {Logger} logger 日志打印工具
     * @param {number} timeout 通信超时时间
     */
    constructor(logger?: Logger, timeout?: number);
    /**
     * 设备是否准备就绪
     * @returns boolean
     * @memberof Core
     */
    get isDeviceReady(): boolean;
    /**
     * 日志打印工具
     * @returns Logger
     * @memberof Core
     */
    get logger(): Logger;
    /**
     * 通信超时事件
     * @returns number
     * @memberof Core
     */
    get timeout(): number;
    /**
     * 初始化配置项
     * @param {CoreOptions} [options]
     * @returns {boolean}
     * @memberof Core
     */
    init(options: CoreOptions): void;
    /**
     * 在 Flutter 准备就绪时触发，api的调用需要保证在该回调函数触发后调用
     * @param {Function} [fn] 回调函数
     * @memberof Core
     */
    onDeviceReady(fn: () => void): Promise<void>;
    /**
     * 注册error函数, 在SDK发生错误/异常时执行
     * @param {Function} [fn] 回调函数
     * @memberof Core
     */
    error(fn: () => void): void;
    /**
     * 执行error回调函数
     * @param {unknown} error 错误对象
     * @memberof Core
     */
    onError(error: unknown): void;
}
export declare const core: Core;
export declare const init: (options: CoreOptions) => void;
export declare const isDeviceReady: boolean;
export declare const error: (fn: () => void) => void;
export declare const logger: Logger;
/**
 * 以异步的方式执行 Flutter 的事件，用于获取数据类型的 API
 * @template A 参数类型
 * @template S 成功回调的返回类型
 * @template F 失败回调的返回类型
 * @param {string} service 调用的服务类名
 * @param {string} action 调用的方法名
 * @param {Array<A>} args 调用的参数
 * @param {(data: S) => void} [onSuccess] 成功回调
 * @param {(err: F) => void} [onError] 失败回调
 * @param {boolean} enableTimer 是否启用超时
 * @returns {Promise<S>}
 */
export declare function exec(service: string, action: string, args?: any, onSuccess?: (data: any) => void, onError?: (err: any) => void, enableTimer?: boolean): Promise<unknown>;
/**
 * 以同步的方式执行 Flutter 的事件, 用于没有回调的API
 * @export
 * @template A
 * @param {string} service 调用的服务类名
 * @param {string} action 调用的方法名
 * @param {Array<A>} args 调用的参数
 * @returns {void}
 */
export declare function execSync(service: string, action: string, args?: any): void;
export {};
