import { EscrowSigner } from '../../client/class/signer.js';
import { ProposalData, RolePolicy } from '../../types/index.js';
export declare function is_member_api(signer: EscrowSigner): (proposal: ProposalData) => boolean;
export declare function join_proposal_api(signer: EscrowSigner): (proposal: ProposalData, role: RolePolicy, index?: number) => {
    members: import("../../types/index.js").MemberData[];
    paths: import("../../types/index.js").PathEntry[];
    payments: import("../../types/index.js").PaymentEntry[];
    programs: import("../../types/index.js").ProgramTerms[];
    content?: string | undefined;
    deadline?: number | undefined;
    effective?: number | undefined;
    expires: number;
    feerate?: number | undefined;
    moderator?: string | undefined;
    network: import("../../types/index.js").Network;
    schedule: import("../../types/index.js").ScheduleTerms[];
    title: string;
    value: number;
    version: number;
};
export declare function leave_proposal_api(signer: EscrowSigner): (proposal: ProposalData) => ProposalData;
export declare function endorse_proposal_api(client: EscrowSigner): (proposal: ProposalData) => string;
export default function (signer: EscrowSigner): {
    endorse: (proposal: ProposalData) => string;
    is_member: (proposal: ProposalData) => boolean;
    join: (proposal: ProposalData, role: RolePolicy, index?: number | undefined) => {
        members: import("../../types/index.js").MemberData[];
        paths: import("../../types/index.js").PathEntry[];
        payments: import("../../types/index.js").PaymentEntry[];
        programs: import("../../types/index.js").ProgramTerms[];
        content?: string | undefined;
        deadline?: number | undefined;
        effective?: number | undefined;
        expires: number;
        feerate?: number | undefined;
        moderator?: string | undefined;
        network: import("../../types/index.js").Network;
        schedule: import("../../types/index.js").ScheduleTerms[];
        title: string;
        value: number;
        version: number;
    };
    leave: (proposal: ProposalData) => ProposalData;
};
