/**
 * -------------------------------------------------------------------------------------------
 * Copyright (c) Microsoft Corporation.  All Rights Reserved.  Licensed under the MIT License.
 * See License in the project root for license information.
 * -------------------------------------------------------------------------------------------
 */
import type { Parsable } from "./parsable.js";
import type { ParseNode } from "./parseNode.js";
import type { ParseNodeFactory } from "./parseNodeFactory.js";
/** Proxy factory that allows the composition of before and after callbacks on existing factories. */
export declare abstract class ParseNodeProxyFactory implements ParseNodeFactory {
    private readonly _concrete;
    private readonly _onBefore;
    private readonly _onAfter;
    getValidContentType(): string;
    /**
     * Creates a new proxy factory that wraps the specified concrete factory while composing the before and after callbacks.
     * @param _concrete the concrete factory to wrap
     * @param _onBefore the callback to invoke before the deserialization of any model object.
     * @param _onAfter the callback to invoke after the deserialization of any model object.
     */
    constructor(_concrete: ParseNodeFactory, _onBefore: (value: Parsable) => void, _onAfter: (value: Parsable) => void);
    getRootParseNode(contentType: string, content: ArrayBuffer): ParseNode;
}
//# sourceMappingURL=parseNodeProxyFactory.d.ts.map