/**
 * @license
 * Copyright 2022-2026 Matter.js Authors
 * SPDX-License-Identifier: Apache-2.0
 */
import type { Behavior } from "#behavior/Behavior.js";
import type { BehaviorBacking } from "#behavior/internal/BehaviorBacking.js";
import type { Agent } from "#endpoint/Agent.js";
import { EndpointVariableService } from "#endpoint/EndpointVariableService.js";
import { MaybePromise } from "@matter/general";
import type { Endpoint } from "../Endpoint.js";
/**
 * Base class for {@link Endpoint} initialization services.
 */
export declare abstract class EndpointInitializer {
    /**
     * Initialize a {@link Endpoint}.
     */
    initializeDescendant(_endpoint: Endpoint): void;
    /**
     * Erase storage for a {@link Endpoint}.
     */
    abstract eraseDescendant(_endpoint: Endpoint): Promise<void>;
    /**
     * Deactivate the storage for a {@link Endpoint}. This mainly manages internal state to deactivate the endpoint number assignment
     */
    abstract deactivateDescendant(_endpoint: Endpoint): Promise<void>;
    /**
     * Create backing for a behavior of a descendent.
     *
     * @param endpoint the {@link Endpoint} the behavior belongs to
     * @param type the {@link Behavior} type
     * @returns a new {@link BehaviorBacking}
     */
    abstract createBacking(endpoint: Endpoint, type: Behavior.Type): BehaviorBacking;
    /**
     * Environmental configuration if supported on this node.
     */
    variableService?: EndpointVariableService;
    /**
     * Invoked after behaviors are initialized but before the initialization transaction commits.
     */
    behaviorsInitialized(_agent: Agent): MaybePromise;
}
//# sourceMappingURL=EndpointInitializer.d.ts.map