import * as PUPPET from '@juzi/wechaty-puppet';
import type { Constructor } from 'clone-class';
import type { ContactInterface } from './contact.js';
declare const CallRecordMixin_base: ((abstract new (...args: any[]) => {
    readonly wechaty: import("../wechaty/wechaty-impl.js").WechatyInterface;
}) & {
    readonly wechaty: import("../wechaty/wechaty-impl.js").WechatyInterface;
}) & {
    new (): {};
};
declare class CallRecordMixin extends CallRecordMixin_base {
    readonly payload: PUPPET.payloads.CallRecord;
    static create(): Promise<CallRecordInterface>;
    constructor(payload: PUPPET.payloads.CallRecord);
    starter(): Promise<undefined | ContactInterface>;
    participants(): Promise<ContactInterface[]>;
    length(): number;
    type(): PUPPET.types.Call;
    status(): PUPPET.types.CallStatus;
}
declare const CallRecordImpl_base: {
    new (...args: any[]): {};
    valid: (o: any) => o is CallRecordInterface;
    validInstance: (target: any) => target is CallRecordMixin;
    validInterface: (target: any) => target is CallRecordInterface;
} & typeof CallRecordMixin;
declare class CallRecordImpl extends CallRecordImpl_base {
}
interface CallRecordInterface extends CallRecordImpl {
}
declare type CallRecordConstructor = Constructor<CallRecordInterface, typeof CallRecordImpl>;
export type { CallRecordConstructor, CallRecordInterface, };
export { CallRecordImpl, };
//# sourceMappingURL=call.d.ts.map