export declare class PropertyDescriptorChain<Obj extends object, T = (Obj extends new () => any ? (Obj extends {
    prototype: infer P;
} ? P : never) : Obj), Key extends keyof T = keyof T> {
    #private;
    get descriptor(): PropertyDescriptor[];
    get size(): number;
    /**
     * Creates an instance of `PropertyDescriptorChain`.
     * @param object
     * @param key
     */
    constructor(object: Obj, key: Key);
    add(): void;
    get(id: number): PropertyDescriptor;
    last(): PropertyDescriptor;
}
