import { TokensActionBase, UserAction, UserActionType } from '@radixdlt/actions';
import { AnyUpParticle, TokenDefinitionParticleBase } from '@radixdlt/atom';
import { AddressT } from '@radixdlt/account';
import { Result } from 'neverthrow';
import { MapperInput } from './_types';
import { ValidationWitness } from '@radixdlt/util';
export declare const validate: (...validators: ((input: any) => Result<MapperInput, Error>)[]) => (input: MapperInput) => Result<Readonly<{
    action: Readonly<{
        actionType: unknown;
        sender: AddressT;
        uuid: string;
    }>;
    upParticles: AnyUpParticle[];
    addressOfActiveAccount: AddressT;
}>, Error>;
export declare const validateUserActionSender: <T extends Readonly<{
    action: UserAction<unknown>;
    addressOfActiveAccount: AddressT;
}>>(input: T) => Result<T, Error>;
export declare const alwaysValid: ValidationWitness;
export declare const validateConsumeTokensAction: (validateTokenDefinition?: ((input: Readonly<{
    tokenDefinitionParticle: TokenDefinitionParticleBase;
    burner: AddressT;
}>) => Result<ValidationWitness, Error>) | undefined) => <T extends Readonly<{
    upParticles: AnyUpParticle[];
    action: A;
}>, A extends TokensActionBase<unknown>>(input: T) => Result<T, Error>;
export declare const validateUserActionType: (filterOnType: UserActionType) => <T extends {
    action: UserAction<unknown>;
}>(input: T) => Result<T, Error>;
//# sourceMappingURL=validation.d.ts.map