import type { Constructor } from 'clone-class';
import type { PaginationRequest } from '@juzi/wechaty-puppet/filters';
import * as PUPPET from '@juzi/wechaty-puppet';
declare const MixinBase: ((abstract new (...args: any[]) => {
    readonly wechaty: import("../wechaty/wechaty-impl.js").WechatyInterface;
}) & {
    readonly wechaty: import("../wechaty/wechaty-impl.js").WechatyInterface;
}) & ((abstract new (...args: any[]) => {}) & {
    _pool?: Map<string, WxxdOrderImplInterface> | undefined;
    readonly pool: Map<string, WxxdOrderImplInterface>;
    load<L extends import("clone-class/dist/esm/src/constructor.js").ClassInterface<{}> & {
        new (...args: any[]): WxxdOrderImplInterface;
        prototype: WxxdOrderImplInterface;
    } & import("../user-mixins/poolify.js").PoolifyMixin<WxxdOrderImplInterface>>(this: L, id: string): WxxdOrderImplInterface;
}) & ObjectConstructor;
declare class WxxdOrderMixin extends MixinBase {
    readonly id: string;
    /**
     * Instance properties
     * @ignore
     */
    payload?: PUPPET.payloads.WxxdOrder;
    /**
     * @hideconstructor
     */
    constructor(id: string);
    /**
     * List all orders
     */
    static list(query: PaginationRequest): Promise<PUPPET.filters.PaginationResponse<PUPPET.payloads.WxxdOrder[]>>;
    /**
     * Find order by id or filter
     */
    static find(query: string | {
        id: string;
    }): Promise<WxxdOrderInterface | undefined>;
    /**
     * Send delivery for an order
     */
    static deliverySend(orderId: string, deliveryId: string, waybillId: string): Promise<void>;
    /**
     * Generate after sale order
     */
    static genAfterSaleOrder(orderId: string, reason: string): Promise<void>;
    /**
     * Update order merchant notes
     */
    static updateWxxdMerchantnotes(orderId: string, merchantNotes: string): Promise<void>;
    isReady(): boolean;
    ready(forceSync?: boolean): Promise<void>;
    /**
     * Get order ID
     */
    orderId(): string;
    /**
     * Get order open ID
     */
    openId(): string;
    /**
     * Get order status
     */
    status(): PUPPET.types.WxxdOrderStatus;
    /**
     * Get order create time
     */
    createTime(): number;
    /**
     * Get order update time
     */
    updateTime(): number;
    /**
     * Get order products
     */
    products(): PUPPET.payloads.WxxdOrderProduct[];
    /**
     * Get order ext info
     */
    extInfo(): PUPPET.payloads.WxxdOrderExtInfo | undefined;
}
declare const WxxdOrderImplBase_base: {
    new (...args: any[]): {};
    valid: (o: any) => o is WxxdOrderImplInterface;
    validInstance: (target: any) => target is WxxdOrderMixin;
    validInterface: (target: any) => target is WxxdOrderImplInterface;
} & typeof WxxdOrderMixin;
declare class WxxdOrderImplBase extends WxxdOrderImplBase_base {
}
interface WxxdOrderImplInterface extends WxxdOrderImplBase {
}
declare type WxxdOrderProtectedProperty = 'ready';
declare type WxxdOrderInterface = Omit<WxxdOrderImplInterface, WxxdOrderProtectedProperty>;
declare const WxxdOrderImpl_base: {
    new (...args: any[]): {};
    valid: (o: any) => o is WxxdOrderInterface;
    validInstance: (target: any) => target is WxxdOrderImplBase;
    validInterface: (target: any) => target is WxxdOrderInterface;
} & typeof WxxdOrderImplBase;
declare class WxxdOrderImpl extends WxxdOrderImpl_base {
}
declare type WxxdOrderConstructor = Constructor<WxxdOrderImplInterface, typeof WxxdOrderImpl>;
export type { WxxdOrderConstructor, WxxdOrderProtectedProperty, WxxdOrderInterface, };
export { WxxdOrderImpl, };
//# sourceMappingURL=wxxd-order.d.ts.map