/// <reference types="node" />
/// <reference types="@radixdlt/data-formats/customtypes/cbor" />
import { SerializableKeyValues } from '@radixdlt/data-formats';
import { AmountT, Granularity, Nonce } from '@radixdlt/primitives';
import { ResourceIdentifierT, TokenPermission, TokenTransition } from '../../_types';
import { TokenParticle } from '../_types';
export declare type TokenParticleInput = Readonly<{
    amount: AmountT;
    resourceIdentifier: ResourceIdentifierT;
    granularity?: Granularity;
    permissions?: Readonly<{
        [key in TokenTransition]: TokenPermission;
    }>;
    nonce?: Nonce;
}>;
export declare const tokenSerializationKeyValues: (input: TokenParticle) => SerializableKeyValues;
export declare const withTokenParticleEquals: (...args: ((p1: any, p2: any) => boolean)[]) => (p: import("../_types").RadixParticle) => {
    equals: (otherParticle: import("../_types").RadixParticle) => boolean;
    toJSON: () => import("neverthrow").Result<import("@radixdlt/data-formats").JSONDecodablePrimitive, Error>;
    encoding: (outputMode: import("@radixdlt/data-formats").OutputMode) => Readonly<{
        encodeCBOR: (encoder: import("cbor").CBOREncoder) => boolean;
    }>;
    toDSON: (outputMode?: import("@radixdlt/data-formats").OutputMode | undefined) => import("neverthrow").Result<Buffer, Error>;
    radixParticleType: import("./radixParticleTypes").RadixParticleType;
};
export declare const tokenParticleProps: (input: TokenParticleInput) => TokenParticle;
//# sourceMappingURL=tokenParticle.d.ts.map