/**
 *   Wechaty Chatbot SDK - https://github.com/wechaty/wechaty
 *
 *   @copyright 2016 Huan LI (李卓桓) <https://github.com/huan>, and
 *                   Wechaty Contributors <https://github.com/wechaty>.
 *
 *   Licensed under the Apache License, Version 2.0 (the "License");
 *   you may not use this file except in compliance with the License.
 *   You may obtain a copy of the License at
 *
 *       http://www.apache.org/licenses/LICENSE-2.0
 *
 *   Unless required by applicable law or agreed to in writing, software
 *   distributed under the License is distributed on an "AS IS" BASIS,
 *   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 *   See the License for the specific language governing permissions and
 *   limitations under the License.
 *
 */
import { MemoryCard } from 'memory-card';
import type { Loggable } from 'brolog';
import { WechatyEventEmitter, WechatyEventName } from '../schemas/mod.js';
import type { WechatyOptions } from '../schemas/wechaty-options.js';
declare abstract class WechatySkeleton extends WechatyEventEmitter {
    static readonly log: Loggable;
    readonly log: Loggable;
    /**
     * the UUID of the Wechaty
     * @ignore
     */
    readonly id: string;
    __memory?: MemoryCard;
    get memory(): MemoryCard;
    __options: WechatyOptions;
    constructor(...args: any[]);
    /**
     * Initialize the Wechaty instance for ready to be started.
     *
     *  1. It will be called automatically by the start()
     *  2. It should be allowed for being called multiple times in the same instance,
     *    by skipping the second time initialization.
     */
    init(): Promise<void>;
    start(): Promise<void>;
    stop(): Promise<void>;
    on(event: WechatyEventName, listener: (...args: any[]) => any): this;
}
declare type WechatySkeletonProtectedProperty = '__events' | '__memory' | '__options' | 'memory';
export type { WechatySkeletonProtectedProperty, };
export { WechatySkeleton, };
//# sourceMappingURL=wechaty-skeleton.d.ts.map