import type { Environment } from "@stigmer/protos/ai/stigmer/agentic/environment/v1/api_pb";
/** Props for {@link EnvironmentListPanel}. */
export interface EnvironmentListPanelProps {
    /** Organization slug to list environments for. */
    readonly org: string;
    /** Optional label filter — only environments matching ALL labels are shown. */
    readonly labels?: Record<string, string>;
    /**
     * Exclude environments whose labels match one or more label sets.
     *
     * A single record uses AND semantics — the environment must match
     * **all** key-value pairs to be excluded. Pass an array of records
     * for OR-of-AND semantics: the environment is excluded when **any**
     * record fully matches.
     *
     * @example
     * ```tsx
     * // Exclude personal envs only (single record — backward-compatible)
     * excludeLabels={{ "stigmer.ai/personal": "true" }}
     *
     * // Exclude personal AND managed envs (array of records)
     * excludeLabels={[
     *   { "stigmer.ai/personal": "true" },
     *   { "stigmer.ai/managed": "true" },
     * ]}
     * ```
     */
    readonly excludeLabels?: Record<string, string> | Record<string, string>[];
    /** Fired when a user selects (expands) an environment. */
    readonly onEnvironmentSelect?: (env: Environment) => void;
    /** When `true`, variable editors render in read-only mode. */
    readonly readOnly?: boolean;
    /** Re-expose refetch so parents can trigger a list refresh. */
    readonly onRefetchRef?: (refetch: () => void) => void;
    /** Additional CSS class names for the root container. */
    readonly className?: string;
}
/**
 * Displays a list of {@link Environment} resources for an organization
 * with expandable inline variable editors.
 *
 * Each environment is rendered as a collapsible card showing name,
 * description, and variable count. Clicking expands it to reveal a
 * full {@link EnvironmentVariableEditor}. Only one environment is
 * expanded at a time to keep the view focused.
 *
 * Use `labels` to include only matching environments, or
 * `excludeLabels` to remove specific ones from the list (e.g. exclude
 * the personal environment when it is already rendered separately).
 *
 * Part of the **Environment Flow** — manages persistent credentials
 * stored in Environment resources.
 *
 * All visual properties flow through `--stgm-*` design tokens.
 *
 * @example
 * ```tsx
 * <EnvironmentListPanel org="acme" />
 *
 * <EnvironmentListPanel
 *   org="acme"
 *   excludeLabels={{ "stigmer.ai/personal": "true" }}
 *   readOnly
 * />
 * ```
 */
export declare function EnvironmentListPanel({ org, labels, excludeLabels, onEnvironmentSelect, readOnly, onRefetchRef, className, }: EnvironmentListPanelProps): import("react/jsx-runtime").JSX.Element;
//# sourceMappingURL=EnvironmentListPanel.d.ts.map