import { FungibleParticleTransitioner } from './_types';
import { AnySpunParticle, ParticleBase } from '@radixdlt/atom';
import { Result } from 'neverthrow';
import { AmountT } from '@radixdlt/primitives/src/_types';
export declare const makeTransitioner: <From extends ParticleBase, To extends ParticleBase>(input: Readonly<{
    inputAmountMapper: (from: From) => AmountT;
    inputCreator: (amount: AmountT, from: From) => Result<From, Error>;
    outputCreator: (amount: AmountT, from: From) => Result<To, Error>;
}>) => Readonly<{
    transition: (input: Readonly<{
        currentParticles: From[];
        totalAmountToTransfer: AmountT;
    }>) => Result<AnySpunParticle[], Error>;
}>;
export declare const makeSimpleTransitioner: <From extends ParticleBase, To extends ParticleBase>(input: Readonly<{
    inputAmountMapper: (from: From) => AmountT;
    inputCreator: (amount: AmountT) => From;
    outputCreator: (amount: AmountT) => To;
}>) => Readonly<{
    transition: (input: Readonly<{
        currentParticles: From[];
        totalAmountToTransfer: AmountT;
    }>) => Result<AnySpunParticle[], Error>;
}>;
//# sourceMappingURL=fungibleParticleTransitioner.d.ts.map