/**
 * @license
 * Copyright 2022-2026 Matter.js Authors
 * SPDX-License-Identifier: Apache-2.0
 */
import { PicsFile } from "./file.js";
/**
 * Source of PICS values.
 */
export type PicsSource = PicsSource.Composite | PicsSource.ChipFile | PicsSource.LocalFile | PicsSource.Lines | PicsSource.Values;
export declare namespace PicsSource {
    /**
     * Load a {@link PicsFile} defined by a {@link PicsSource}.
     *
     * Caches results so a source always returns the same {@link PicsFile} instance.
     */
    function load(source: PicsSource): Promise<PicsFile>;
    /**
     * Save a {@link PicsFile} to the a {@link ChipFile} or {@link LocalFile}.
     */
    function save(target: ChipFile | LocalFile, file: PicsFile): Promise<void>;
    /**
     * Install a {@link PicsSource} into the test container.
     *
     * Returns the name of the file in the container.
     *
     * Results are cached so the same source always returns the same filename.
     */
    function install(file: PicsFile): Promise<string>;
    interface Composite {
        kind: "composite";
        sources: Source[];
    }
    interface ChipFile {
        kind: "chip";
        name: string;
    }
    interface LocalFile {
        kind: "file";
        name: string;
    }
    interface Lines {
        kind: "lines";
        lines: string;
    }
    interface Values {
        kind: "values";
        values: Record<string, 0 | 1>;
    }
    type Source = ChipFile | LocalFile | Lines | Values;
}
//# sourceMappingURL=source.d.ts.map