import { Val } from "#behavior/state/Val.js";
import { Datasource } from "#behavior/state/managed/Datasource.js";
import { Endpoint } from "#endpoint/Endpoint.js";
import { Construction, StorageContext } from "#general";
/**
 * Persistence backing for an {@link Endpoint}.
 *
 * This is the API {@link Endpoint} uses for reading and writing non-volatile values.
 */
export declare class EndpointStore {
    #private;
    /**
     * Description used in diagnostic messages.
     */
    toString(): string;
    get construction(): Construction<EndpointStore>;
    /**
     * Currently persisted values, keyed by {@link Behavior.id} then property name.
     */
    get initialValues(): Record<string, Val.Struct>;
    get number(): number | undefined;
    set number(number: number | undefined);
    constructor(storage: StorageContext, load?: boolean);
    /**
     * Obtain a {@link Datasource.Store} for a behavior.
     */
    storeForBehavior(behaviorId: string): Datasource.Store;
    childStoreFor(endpoint: Endpoint): EndpointStore;
    saveNumber(): Promise<void>;
    /**
     * Patch values.  Keyed by {@link Behavior.id} then property name.
     *
     * See {@link Datasource.Store.set} for the patch semantics the individual structs use.
     */
    set(values: Record<string, undefined | Val.Struct>): Promise<void>;
    /**
     * Remove all persisted information for the {@link Endpoint}
     */
    delete(): Promise<void>;
}
//# sourceMappingURL=EndpointStore.d.ts.map