export type ParsableNumber = bigint | number | string;
export type OraclePriceSubmission = Readonly<ParsableNumber | {
    data: ParsableNumber;
}>;
export type Price = ParsableNumber | Ratio;
export type PriceAggregatorContract = ContractOf<typeof start>;
/**
 * @deprecated use fluxAggregator
 *
 * This contract aggregates price values from a set of oracles and provides a
 * PriceAuthority for their median. This naive method is game-able and so this module
 * is a stub until we complete what is now in `fluxAggregatorKit.js`.
 *
 * @param {ZCF<{
 * timer: import('@agoric/time').TimerService,
 * POLL_INTERVAL: bigint,
 * brandIn: Brand<'nat'>,
 * brandOut: Brand<'nat'>,
 * unitAmountIn: Amount<'nat'>,
 * }>} zcf
 * @param {{
 * marshaller: Marshaller,
 * quoteMint?: ERef<Mint<'set', PriceDescription>>,
 * storageNode: ERef<StorageNode>,
 * }} privateArgs
 */
export function start(zcf: ZCF<{
    timer: import("@agoric/time").TimerService;
    POLL_INTERVAL: bigint;
    brandIn: Brand<"nat">;
    brandOut: Brand<"nat">;
    unitAmountIn: Amount<"nat">;
}>, privateArgs: {
    marshaller: Marshaller;
    quoteMint?: ERef<Mint<"set", PriceDescription>>;
    storageNode: ERef<StorageNode>;
}): Promise<{
    creatorFacet: {
        /**
         * An "oracle invitation" is an invitation to be able to submit data to
         * include in the priceAggregator's results.
         *
         * The offer result from this invitation is a OracleAdmin, which can be used
         * directly to manage the price submissions as well as to terminate the
         * relationship.
         *
         * @param {Instance | string} [oracleKey]
         */
        makeOracleInvitation: (oracleKey?: Instance | string) => Promise<Invitation<{
            admin: OracleAdmin<Price>;
            invitationMakers: {
                PushPrice: (price: ParsableNumber) => Promise<Invitation<void>>;
            };
        }, {
            notifier?: globalThis.Notifier<OraclePriceSubmission> | undefined;
            scaleValueOut?: number | undefined;
        } | undefined>>;
        /** @param {OracleKey} oracleKey */
        deleteOracle: (oracleKey: OracleKey) => Promise<void>;
        /**
         * @param {Instance | string} [oracleInstance]
         * @param {OracleQuery} [query]
         * @returns {Promise<OracleAdmin<Price>>}
         */
        initOracle: (oracleInstance?: Instance | string, query?: OracleQuery) => Promise<OracleAdmin<Price>>;
    } & RemotableObject<`Alleged: ${string}`> & import("@endo/eventual-send").RemotableBrand<{}, {
        /**
         * An "oracle invitation" is an invitation to be able to submit data to
         * include in the priceAggregator's results.
         *
         * The offer result from this invitation is a OracleAdmin, which can be used
         * directly to manage the price submissions as well as to terminate the
         * relationship.
         *
         * @param {Instance | string} [oracleKey]
         */
        makeOracleInvitation: (oracleKey?: Instance | string) => Promise<Invitation<{
            admin: OracleAdmin<Price>;
            invitationMakers: {
                PushPrice: (price: ParsableNumber) => Promise<Invitation<void>>;
            };
        }, {
            notifier?: globalThis.Notifier<OraclePriceSubmission> | undefined;
            scaleValueOut?: number | undefined;
        } | undefined>>;
        /** @param {OracleKey} oracleKey */
        deleteOracle: (oracleKey: OracleKey) => Promise<void>;
        /**
         * @param {Instance | string} [oracleInstance]
         * @param {OracleQuery} [query]
         * @returns {Promise<OracleAdmin<Price>>}
         */
        initOracle: (oracleInstance?: Instance | string, query?: OracleQuery) => Promise<OracleAdmin<Price>>;
    }>;
    publicFacet: {
        getPriceAuthority(): import("@agoric/zoe/tools/types.js").PriceAuthority;
        getSubscriber: () => globalThis.StoredSubscriber<unknown>;
        /** Diagnostic tool */
        getRoundCompleteNotifier(): Promise<globalThis.Notifier<any>>;
    } & RemotableObject<`Alleged: ${string}`> & import("@endo/eventual-send").RemotableBrand<{}, {
        getPriceAuthority(): import("@agoric/zoe/tools/types.js").PriceAuthority;
        getSubscriber: () => globalThis.StoredSubscriber<unknown>;
        /** Diagnostic tool */
        getRoundCompleteNotifier(): Promise<globalThis.Notifier<any>>;
    }>;
}>;
import type { ContractOf } from '../zoeService/utils.js';
import type { ZCF } from '@agoric/zoe';
import type { PriceDescription } from '@agoric/zoe/tools/types.js';
import type { Invitation } from '@agoric/zoe';
//# sourceMappingURL=priceAggregator.d.ts.map