import PolicyInterface from '../../interfaces/PolicyInterface.js';
import PolicyType from '../../enum/PolicyTypeEnum.js';
declare abstract class AbstractPolicy implements PolicyInterface {
    static readonly TYPE_BYTE_OFF = 0;
    static readonly TYPE_BYTE_LEN = 1;
    static readonly BODY_BYTE_OFF = 1;
    static readonly BODY_BYTE_MIN_LEN = 3;
    static readonly BODY_BYTE_MAX_LEN = 257;
    static readonly BINDING_BYTE_MIN_LEN = 8;
    static readonly BINDING_BYTE_MAX_LEN = 132;
    readonly type: PolicyType;
    readonly binding: Uint8Array;
    static parse(buff: Uint8Array, bindingLength: number, type?: PolicyType): {
        policy: PolicyInterface;
        offset: number;
    };
    constructor(type: PolicyType, binding: Uint8Array);
    /**
     * Length of policy
     */
    getLength(): number | never;
    /**
     * Return the content of the policy
     */
    toBuffer(): Uint8Array | never;
}
export default AbstractPolicy;
//# sourceMappingURL=AbstractPolicy.d.ts.map