import { Result } from 'neverthrow';
import { AddressT } from '@radixdlt/account';
import { Granularity } from '@radixdlt/primitives';
import { ParticleBase, TokenDefinitionParticleBase } from './_types';
import { CBOREncodablePrimitive, DSONCodable, DSONKeyValues, OutputMode, SerializableKeyValues } from '@radixdlt/data-formats';
import { RadixParticleType } from './meta/_index';
export declare type URLInput = string | URL;
export declare const validateURLInput: (urlInput: URLInput | undefined) => Result<string | undefined, Error>;
export declare const onlyUppercasedAlphanumerics: (input: string) => boolean;
export declare const RADIX_TOKEN_NAME_MIN_LENGTH = 2;
export declare const RADIX_TOKEN_NAME_MAX_LENGTH = 64;
export declare const RADIX_TOKEN_SYMBOL_MIN_LENGTH = 1;
export declare const RADIX_TOKEN_SYMBOL_MAX_LENGTH = 14;
export declare const RADIX_TOKEN_DESCRIPTION_MAX_LENGTH = 200;
export declare const validateTokenDefinitionSymbol: (symbol: string) => Result<string, Error>;
export declare const validateTokenDefinitionName: (name: string) => Result<string, Error>;
export declare const validateDescription: (description: string | undefined) => Result<string | undefined, Error>;
export declare type TokenDefinitionParticleInput = Readonly<{
    symbol: string;
    name: string;
    address: AddressT;
    description?: string;
    granularity?: Granularity;
    url?: URLInput;
    iconURL?: URLInput;
}>;
export declare const definedOrNonNull: <T>(value: T | null | undefined) => value is T;
export declare type MaybeEncodableKeyValue = DSONKeyValues | undefined;
export declare const keyValueIfPrimitivePresent: (input: Readonly<{
    key: string;
    value?: CBOREncodablePrimitive;
    outputMode?: OutputMode;
}>) => MaybeEncodableKeyValue;
export declare const encodableKeyValuesPresent: (maybes: SerializableKeyValues) => SerializableKeyValues;
export declare const dsonEncodingMarker: DSONCodable;
export declare const baseTokenDefinitionParticle: (input: Readonly<{
    symbol: string;
    name: string;
    address: AddressT;
    description?: string | undefined;
    granularity?: import("@radixdlt/primitives").AmountT | undefined;
    url?: string | URL | undefined;
    iconURL?: string | URL | undefined;
}> & Readonly<{
    specificEncodableKeyValues: SerializableKeyValues;
    serializer: string;
    radixParticleType: RadixParticleType;
    makeEquals: (thisParticle: TokenDefinitionParticleBase, other: ParticleBase) => boolean;
}>) => Result<TokenDefinitionParticleBase, Error>;
export declare const isTokenDefinitionParticleBase: (something: unknown) => something is TokenDefinitionParticleBase;
//# sourceMappingURL=tokenDefinitionParticleBase.d.ts.map