import { EventEmitter } from './emitter.js';
import { EscrowSigner } from './signer.js';
import { MemberData, ProgramQuery, ProposalData, RolePolicy } from '../../types/index.js';
export declare class EscrowProposal extends EventEmitter<{
    'update': EscrowProposal;
}> {
    _data: ProposalData;
    constructor(data: ProposalData);
    get copy(): EscrowProposal;
    get data(): ProposalData;
    get id(): string;
    _update(data: ProposalData): void;
    join(role: RolePolicy, member: EscrowSigner, index?: number): void;
    leave(member: EscrowSigner): void;
    get_program(query: ProgramQuery): import("../../types/index.js").ProgramData | undefined;
    add_membership(mship: MemberData, role: RolePolicy): void;
    rem_membership(mship: MemberData, leave?: boolean): void;
    toJSON(): ProposalData;
    toString(): string;
}
