import type { Constructor } from 'clone-class';
import type { TagInterface } from './tag.js';
declare const FavoriteMixin_base: ((abstract new (...args: any[]) => {
    readonly wechaty: import("../wechaty/wechaty-impl.js").WechatyInterface;
}) & {
    readonly wechaty: import("../wechaty/wechaty-impl.js").WechatyInterface;
}) & {
    new (): {};
};
declare class FavoriteMixin extends FavoriteMixin_base {
    static list(): FavoriteInterface[];
    /**
     * Get tags for all favorites
     *
     * @static
     * @returns {Promise<TagInterface[]>}
     * @example
     * const tags = await wechaty.Favorite.tags()
     */
    static tags(): Promise<TagInterface[]>;
    constructor();
    tags(): Promise<TagInterface[]>;
    findAll(): Promise<void>;
}
declare const FavoriteImpl_base: {
    new (...args: any[]): {};
    valid: (o: any) => o is FavoriteInterface;
    validInstance: (target: any) => target is FavoriteMixin;
    validInterface: (target: any) => target is FavoriteInterface;
} & typeof FavoriteMixin;
declare class FavoriteImpl extends FavoriteImpl_base {
}
interface FavoriteInterface extends FavoriteImpl {
}
declare type FavoriteConstructor = Constructor<FavoriteInterface, typeof FavoriteImpl>;
export type { FavoriteConstructor, FavoriteInterface, };
export { FavoriteImpl, };
//# sourceMappingURL=favorite.d.ts.map