/// export declare enum TagType { BOOLEAN = 1, INTEGER = 2, BIT_STRING = 3, OCTET_STRING = 4, NULL = 5, OBJECT_IDENTIFIER = 6, UTF8String = 12, NumericString = 18, PrintableString = 19, TeletexString = 20, IA5String = 22, UTCTime = 23, GeneralizedTime = 24, GraphicString = 25, VisibleString = 26, GeneralString = 27, UniversalString = 28, BMPString = 30 } export interface BlockInfo { tag: TagType; position: number; length: number; } export declare function readTag(buf: Buffer, pos: number): BlockInfo; export declare function _readStruct(buf: Buffer, blockInfo: BlockInfo): BlockInfo[]; export declare function parseBitString(buffer: Buffer, start: number, end: number, maxLength: number): string; export interface BitString { lengthInBits: number; lengthInBytes: number; data: Buffer; debug?: any; } export declare function _readBitString(buffer: Buffer, block: BlockInfo): BitString; export declare function formatBuffer2DigitHexWithColum(buffer: Buffer): string; export declare function _readOctetString(buffer: Buffer, block: BlockInfo): Buffer; export declare function _getBlock(buffer: Buffer, block: BlockInfo): Buffer; export interface AlgorithmIdentifier { identifier: string; } export declare function _readIntegerAsByteString(buffer: Buffer, block: BlockInfo): Buffer; export declare function _readListOfInteger(buffer: Buffer): Buffer[]; export declare function _readObjectIdentifier(buffer: Buffer, block: BlockInfo): { oid: string; name: string; }; export declare function _readAlgorithmIdentifier(buffer: Buffer, block: BlockInfo): AlgorithmIdentifier; export declare type SignatureValue = string; export declare function _readSignatureValueBin(buffer: Buffer, block: BlockInfo): Buffer; export declare function _readSignatureValue(buffer: Buffer, block: BlockInfo): SignatureValue; export declare function _readLongIntegerValue(buffer: Buffer, block: BlockInfo): Buffer; export declare function _readIntegerValue(buffer: Buffer, block: BlockInfo): number; export declare function _readBooleanValue(buffer: Buffer, block: BlockInfo): boolean; export declare function _readVersionValue(buffer: Buffer, block: BlockInfo): number; export declare function _readValue(buffer: Buffer, block: BlockInfo): any; export interface DirectoryName { stateOrProvinceName?: string; localityName?: string; organizationName?: string; organizationUnitName?: string; commonName?: string; countryName?: string; } export declare function compactDirectoryName(d: DirectoryName): string; export declare function _readDirectoryName(buffer: Buffer, block: BlockInfo): DirectoryName; export declare function _findBlockAtIndex(blocks: BlockInfo[], index: number): BlockInfo | null; export declare function _readTime(buffer: Buffer, block: BlockInfo): any;