import { ASN1Decoder, ASN1Encoder } from "../functional.mjs";
import type { OBJECT_IDENTIFIER, BIT_STRING } from "../macros.mjs";
export default interface ABSTRACT_SYNTAX<Type = any> {
    class: string;
    decoderFor: Partial<{
        [_K in keyof ABSTRACT_SYNTAX<Type>]: ASN1Decoder<ABSTRACT_SYNTAX<Type>[_K]>;
    }>;
    encoderFor: Partial<{
        [_K in keyof ABSTRACT_SYNTAX<Type>]: ASN1Encoder<ABSTRACT_SYNTAX<Type>[_K]>;
    }>;
    "&id": OBJECT_IDENTIFIER;
    "&Type": Type;
    "&property": BIT_STRING;
}
