import { URI } from "../../../../base/common/uri.js";
import { PromptsStorage } from "./promptSyntax/service/promptsService.js";
/**
 * Extended storage type for AI Customization that includes built-in prompts
 * shipped with the application, alongside the core `PromptsStorage` values.
 */
export type AICustomizationPromptsStorage = PromptsStorage | "builtin";
/**
 * Storage type discriminator for built-in customizations shipped with the application.
 */
export declare const BUILTIN_STORAGE: AICustomizationPromptsStorage;
/**
 * Possible section IDs for the AI Customization Management Editor sidebar.
 */
export declare const AICustomizationManagementSection: {
    readonly Agents: "agents";
    readonly Skills: "skills";
    readonly Instructions: "instructions";
    readonly Prompts: "prompts";
    readonly Hooks: "hooks";
    readonly McpServers: "mcpServers";
    readonly Plugins: "plugins";
    readonly Models: "models";
};
export type AICustomizationManagementSection = typeof AICustomizationManagementSection[keyof typeof AICustomizationManagementSection];
/**
 * Per-type filter policy controlling which storage sources and user file
 * roots are visible for a given customization type.
 */
export interface IStorageSourceFilter {
    /**
     * Which storage groups to display (e.g. workspace, user, extension, builtin).
     */
    readonly sources: readonly string[];
    /**
     * If set, only user files under these roots are shown (allowlist).
     * If `undefined`, all user file roots are included.
     */
    readonly includedUserFileRoots?: readonly URI[];
}
/**
 * Applies a storage source filter to an array of items that have uri and storage.
 * Removes items whose storage is not in the filter's source list,
 * and for user-storage items, removes those not under an allowed root.
 */
export declare function applyStorageSourceFilter<T extends {
    readonly uri: URI;
    readonly storage: string;
}>(items: readonly T[], filter: IStorageSourceFilter): readonly T[];
