/** @type {ContractMeta} */ export const meta: ContractMeta; export function makeContractFeeCollector(zoe: ERef, creatorFacet: ERef): { collectFees: () => Promise>; } & RemotableObject<`Alleged: ${string}`> & import("@endo/eventual-send").RemotableBrand<{}, { collectFees: () => Promise>; }>; export function startDistributing(schedulePayments: () => Promise, timerService: ERef, collectionInterval?: RelativeTime): void; export function makeShareConfig(destinations?: Record>, keywordShares?: Record): { shares: { share: bigint; destination: globalThis.ERef; }[]; totalShares: bigint; }; export function sharePayment(payment: Payment<"nat">, issuer: ERef>, { shares, totalShares }: ShareConfig): Promise; export function makeFeeDistributor(feeIssuer: ERef>, terms: { keywordShares: Record; timerService: ERef; collectionInterval: RelativeTime; }): { creatorFacet: { makeContractFeeCollector: (zoe: ERef, creatorFacet: ERef) => { collectFees: () => Promise>; } & RemotableObject<`Alleged: ${string}`> & import("@endo/eventual-send").RemotableBrand<{}, { collectFees: () => Promise>; }>; /** * Start distributing fees from this collector. * * @param {string} debugName * @param {ERef} collectorP */ startPeriodicCollection: (debugName: string, collectorP: ERef) => Promise; /** * @param {import('@endo/far').EOnly< * import('@agoric/ertp/src/types.js').DepositFacet * >} depositFacet */ makeDepositFacetDestination: (depositFacet: import("@endo/far").EOnly) => { pushPayment: (payment: any, _issuer: any) => Promise; } & RemotableObject<`Alleged: ${string}`> & import("@endo/eventual-send").RemotableBrand<{}, { pushPayment: (payment: any, _issuer: any) => Promise; }>; /** * Create a destination that generates invitations and makes Zoe offers. * * @param {ERef} zoe * @param {string} keyword * @param {unknown} target * @param {PropertyKey} makeInvitationMethod * @param {unknown[]} [args] */ makeOfferDestination: (zoe: ERef, keyword: string, target: unknown, makeInvitationMethod: PropertyKey, args?: unknown[]) => { pushPayment: (payment: any, issuer: any) => Promise; } & RemotableObject<`Alleged: ${string}`> & import("@endo/eventual-send").RemotableBrand<{}, { pushPayment: (payment: any, issuer: any) => Promise; }>; /** @param {Record>} newDestinations */ setDestinations: (newDestinations: Record>) => Promise; /** @param {Record} newShares */ setKeywordShares: (newShares: Record) => void; } & RemotableObject<`Alleged: ${string}`> & import("@endo/eventual-send").RemotableBrand<{}, { makeContractFeeCollector: (zoe: ERef, creatorFacet: ERef) => { collectFees: () => Promise>; } & RemotableObject<`Alleged: ${string}`> & import("@endo/eventual-send").RemotableBrand<{}, { collectFees: () => Promise>; }>; /** * Start distributing fees from this collector. * * @param {string} debugName * @param {ERef} collectorP */ startPeriodicCollection: (debugName: string, collectorP: ERef) => Promise; /** * @param {import('@endo/far').EOnly< * import('@agoric/ertp/src/types.js').DepositFacet * >} depositFacet */ makeDepositFacetDestination: (depositFacet: import("@endo/far").EOnly) => { pushPayment: (payment: any, _issuer: any) => Promise; } & RemotableObject<`Alleged: ${string}`> & import("@endo/eventual-send").RemotableBrand<{}, { pushPayment: (payment: any, _issuer: any) => Promise; }>; /** * Create a destination that generates invitations and makes Zoe offers. * * @param {ERef} zoe * @param {string} keyword * @param {unknown} target * @param {PropertyKey} makeInvitationMethod * @param {unknown[]} [args] */ makeOfferDestination: (zoe: ERef, keyword: string, target: unknown, makeInvitationMethod: PropertyKey, args?: unknown[]) => { pushPayment: (payment: any, issuer: any) => Promise; } & RemotableObject<`Alleged: ${string}`> & import("@endo/eventual-send").RemotableBrand<{}, { pushPayment: (payment: any, issuer: any) => Promise; }>; /** @param {Record>} newDestinations */ setDestinations: (newDestinations: Record>) => Promise; /** @param {Record} newShares */ setKeywordShares: (newShares: Record) => void; }>; publicFacet: { distributeFees: (payment: Payment<"nat">) => Promise; getKeywordShares: () => Record; } & RemotableObject<`Alleged: ${string}`> & import("@endo/eventual-send").RemotableBrand<{}, { distributeFees: (payment: Payment<"nat">) => Promise; getKeywordShares: () => Record; }>; }; export function start(zcf: ZCF[1]>): Promise<{ creatorFacet: { makeContractFeeCollector: (zoe: ERef, creatorFacet: ERef) => { collectFees: () => Promise>; } & RemotableObject<`Alleged: ${string}`> & import("@endo/eventual-send").RemotableBrand<{}, { collectFees: () => Promise>; }>; /** * Start distributing fees from this collector. * * @param {string} debugName * @param {ERef} collectorP */ startPeriodicCollection: (debugName: string, collectorP: ERef) => Promise; /** * @param {import('@endo/far').EOnly< * import('@agoric/ertp/src/types.js').DepositFacet * >} depositFacet */ makeDepositFacetDestination: (depositFacet: import("@endo/far").EOnly) => { pushPayment: (payment: any, _issuer: any) => Promise; } & RemotableObject<`Alleged: ${string}`> & import("@endo/eventual-send").RemotableBrand<{}, { pushPayment: (payment: any, _issuer: any) => Promise; }>; /** * Create a destination that generates invitations and makes Zoe offers. * * @param {ERef} zoe * @param {string} keyword * @param {unknown} target * @param {PropertyKey} makeInvitationMethod * @param {unknown[]} [args] */ makeOfferDestination: (zoe: ERef, keyword: string, target: unknown, makeInvitationMethod: PropertyKey, args?: unknown[]) => { pushPayment: (payment: any, issuer: any) => Promise; } & RemotableObject<`Alleged: ${string}`> & import("@endo/eventual-send").RemotableBrand<{}, { pushPayment: (payment: any, issuer: any) => Promise; }>; /** @param {Record>} newDestinations */ setDestinations: (newDestinations: Record>) => Promise; /** @param {Record} newShares */ setKeywordShares: (newShares: Record) => void; } & RemotableObject<`Alleged: ${string}`> & import("@endo/eventual-send").RemotableBrand<{}, { makeContractFeeCollector: (zoe: ERef, creatorFacet: ERef) => { collectFees: () => Promise>; } & RemotableObject<`Alleged: ${string}`> & import("@endo/eventual-send").RemotableBrand<{}, { collectFees: () => Promise>; }>; /** * Start distributing fees from this collector. * * @param {string} debugName * @param {ERef} collectorP */ startPeriodicCollection: (debugName: string, collectorP: ERef) => Promise; /** * @param {import('@endo/far').EOnly< * import('@agoric/ertp/src/types.js').DepositFacet * >} depositFacet */ makeDepositFacetDestination: (depositFacet: import("@endo/far").EOnly) => { pushPayment: (payment: any, _issuer: any) => Promise; } & RemotableObject<`Alleged: ${string}`> & import("@endo/eventual-send").RemotableBrand<{}, { pushPayment: (payment: any, _issuer: any) => Promise; }>; /** * Create a destination that generates invitations and makes Zoe offers. * * @param {ERef} zoe * @param {string} keyword * @param {unknown} target * @param {PropertyKey} makeInvitationMethod * @param {unknown[]} [args] */ makeOfferDestination: (zoe: ERef, keyword: string, target: unknown, makeInvitationMethod: PropertyKey, args?: unknown[]) => { pushPayment: (payment: any, issuer: any) => Promise; } & RemotableObject<`Alleged: ${string}`> & import("@endo/eventual-send").RemotableBrand<{}, { pushPayment: (payment: any, issuer: any) => Promise; }>; /** @param {Record>} newDestinations */ setDestinations: (newDestinations: Record>) => Promise; /** @param {Record} newShares */ setKeywordShares: (newShares: Record) => void; }>; publicFacet: { distributeFees: (payment: Payment<"nat">) => Promise; getKeywordShares: () => Record; } & RemotableObject<`Alleged: ${string}`> & import("@endo/eventual-send").RemotableBrand<{}, { distributeFees: (payment: Payment<"nat">) => Promise; getKeywordShares: () => Record; }>; }>; export type FeeCollector = { collectFees: () => ERef>; }; export type PeriodicFeeCollector = { getCollector: () => FeeCollector; collectAndDistributeNow: () => Promise; stop: () => void; }; export type CollectibleContractFacet = { makeCollectFeesInvitation: () => Promise>; }; export type FeeDestination = { pushPayment: (payment: Payment, issuer: ERef) => Promise; }; export type ShareConfig = ReturnType; export type FeeDistributorCreatorFacet = ReturnType["creatorFacet"]; export type FeeDistributorPublicFacet = ReturnType["publicFacet"]; import type { TimerService } from '@agoric/time'; import type { RelativeTime } from '@agoric/time'; //# sourceMappingURL=feeDistributor.d.ts.map