import type * as PUPPET from '@juzi/wechaty-puppet';
import type { Constructor } from 'clone-class';
import type { FileBoxInterface } from 'file-box';
declare const UrlLinkMixin_base: ((abstract new (...args: any[]) => {
    readonly wechaty: import("../wechaty/wechaty-impl.js").WechatyInterface;
}) & {
    readonly wechaty: import("../wechaty/wechaty-impl.js").WechatyInterface;
}) & {
    new (): {};
};
declare class UrlLinkMixin extends UrlLinkMixin_base {
    readonly payload: PUPPET.payloads.UrlLink;
    /**
     *
     * Create from URL
     *
     */
    static create(url: string, fallback?: Partial<Omit<PUPPET.payloads.UrlLink, 'url'>>): Promise<UrlLinkInterface>;
    constructor(payload: PUPPET.payloads.UrlLink);
    toString(): string;
    url(): string;
    title(): string;
    thumbnailUrl(): undefined | string;
    description(): undefined | string;
    thumbnailFile(): undefined | FileBoxInterface;
}
declare const UrlLinkImpl_base: {
    new (...args: any[]): {};
    valid: (o: any) => o is UrlLinkInterface;
    validInstance: (target: any) => target is UrlLinkMixin;
    validInterface: (target: any) => target is UrlLinkInterface;
} & typeof UrlLinkMixin;
declare class UrlLinkImpl extends UrlLinkImpl_base {
}
interface UrlLinkInterface extends UrlLinkImpl {
}
declare type UrlLinkConstructor = Constructor<UrlLinkInterface, typeof UrlLinkImpl>;
export type { UrlLinkConstructor, UrlLinkInterface, };
export { UrlLinkImpl, };
//# sourceMappingURL=url-link.d.ts.map