import { type FailCallbackResult, type PickOptions } from '../../core';
export declare enum WXScene {
    WXSceneSession = 0,
    WXSceneTimeline = 1,
    WXSceneFavorite = 2
}
declare enum MiniptogramType {
    TEST = 0,
    PREVIEW = 1,
    RELEASE = 2
}
export interface WXTextObject {
    text: string;
}
export interface WXImageObject {
    imageData: string;
}
export interface WXVideoObject {
    videoUrl: string;
    videoLowBandUrl?: string;
}
export interface WXFileObject {
    fileExtension: string;
    filePath: string;
}
export interface WXWebpageObject {
    webpageUrl: string;
}
export interface WXMiniProgramObject {
    webpageUrl?: string;
    userName: string;
    path: string;
    withShareTicket: boolean;
    miniprogramType: MiniptogramType;
}
export declare enum WxShareMediaObjectType {
    WXShareText = 1,
    WXShareImage = 2,
    WXShareVideo = 3,
    WXShareFile = 4,
    WXShareWebpage = 5,
    WXShareMiniProgram = 6
}
export interface WXMediaMessage {
    title: string;
    description?: string;
    thumbData?: string;
    mediaObject: WXTextObject | WXImageObject | WXVideoObject | WXFileObject | WXWebpageObject | WXMiniProgramObject;
}
export interface WxShareOptions<T = any> {
    type?: WxShareMediaObjectType;
    message: WXMediaMessage;
    scene?: WXScene;
    success?: (result: T) => void;
    fail?: (err: FailCallbackResult) => void;
}
export declare const wxShare: <P = any, T extends WxShareOptions<P> = WxShareOptions<P>>(options?: T | undefined) => import("../../core").PromisifySuccessResult<PickOptions<T>, WxShareOptions<P>>;
export {};
