/**
 * Filter Types
 *
 * Type definitions for the quick filter system.
 *
 * @since v1.26.0
 */
/**
 * Filter category
 */
export type FilterCategory = 'status' | 'source' | 'category' | 'custom';
/**
 * Plugin status values
 */
export type PluginStatus = 'up-to-date' | 'outdated' | 'error' | 'disabled' | 'unknown';
/**
 * Filter option definition
 */
export interface FilterOption {
    /** Unique identifier */
    id: string;
    /** Display label */
    label: string;
    /** Filter category */
    category: FilterCategory;
    /** Optional icon */
    icon?: string;
    /** Number of matching items */
    count?: number;
    /** Keyboard shortcut */
    shortcut?: string;
}
/**
 * Active filters state
 */
export interface ActiveFilters {
    /** Active status filters */
    status: Set<string>;
    /** Active source filters */
    source: Set<string>;
    /** Active category filters */
    category: Set<string>;
    /** Active custom filters */
    custom: Set<string>;
    /** Search query */
    searchQuery: string;
}
/**
 * Serializable version of active filters
 */
export interface SerializedFilters {
    status: string[];
    source: string[];
    category: string[];
    custom: string[];
    searchQuery: string;
}
/**
 * Filter state
 */
export interface FilterState {
    /** Active filters */
    active: ActiveFilters;
    /** Available filter options */
    available: FilterOption[];
    /** Number of items matching filters */
    matchCount: number;
    /** Total number of items */
    totalCount: number;
}
/**
 * Filterable item interface
 */
export interface FilterableItem {
    /** Plugin name */
    name: string;
    /** Plugin source type */
    type?: string;
    /** Plugin category */
    category?: string;
    /** Whether plugin has updates */
    hasUpdate?: boolean;
    /** Error message if check failed */
    error?: string;
    /** Whether plugin is disabled */
    disabled?: boolean;
    /** Plugin version */
    version?: string;
    /** Custom tags */
    tags?: string[];
    /** Whether plugin is a favorite */
    favorite?: boolean;
}
/**
 * Create empty active filters
 */
export declare function createEmptyFilters(): ActiveFilters;
/**
 * Serialize filters for storage
 */
export declare function serializeFilters(filters: ActiveFilters): SerializedFilters;
/**
 * Deserialize filters from storage
 */
export declare function deserializeFilters(data: SerializedFilters): ActiveFilters;
/**
 * Check if filters have any active selections
 */
export declare function hasActiveFilters(filters: ActiveFilters): boolean;
/**
 * Default status filter options
 */
export declare const DEFAULT_STATUS_OPTIONS: FilterOption[];
/**
 * Default source filter options
 */
export declare const DEFAULT_SOURCE_OPTIONS: FilterOption[];
/**
 * Default category filter options
 */
export declare const DEFAULT_CATEGORY_OPTIONS: FilterOption[];
//# sourceMappingURL=filter-types.d.ts.map