import { LocalizedLabel } from '../../../services/org/permission-catalog.service';
import { PermissionSelectorResource } from './types';
import * as i0 from "@angular/core";
/**
 * `val-permission-selector` — selector de permisos agrupado por recurso.
 *
 * Presentacional: recibe el catálogo (YA filtrado por el consumer — sin `internal`,
 * sin otras apps) y emite los códigos `resource:action` seleccionados. Agrupa por
 * recurso con su label legible (del backend), una fila por recurso con checkbox
 * "Todos" (tri-estado) y un chip por acción. Bilingüe vía `locale` + los labels del
 * catálogo; las pocas etiquetas propias (Todos / vacío) se auto-registran (es/en).
 *
 * Pensado para el modal de creación de API Key (asignar permisos a la key) y
 * reusable en cualquier UI que asigne permisos (roles custom, etc.).
 */
export declare class PermissionSelectorComponent {
    private i18n;
    /** Catálogo YA filtrado (sin internal, sin otras apps). */
    readonly permissions: import("@angular/core").InputSignal<PermissionSelectorResource[]>;
    /** Labels de acción (es/en) por código de acción — del catálogo del backend. */
    readonly actionLabels: import("@angular/core").InputSignal<Record<string, LocalizedLabel>>;
    /** Idioma activo (es/en). Si no se pasa, usa el de `I18nService`. */
    readonly locale: import("@angular/core").InputSignal<string>;
    /** Título opcional de la barra superior (con contador + toggle "Todo"). */
    readonly header: import("@angular/core").InputSignal<string>;
    /** Permisos seleccionados (`resource:action`). Two-way (`model`). */
    readonly selected: import("@angular/core").ModelSignal<string[]>;
    /** Todos los códigos seleccionables (`resource:action`) del catálogo actual. */
    readonly allCodes: import("@angular/core").Signal<string[]>;
    readonly selectedCount: import("@angular/core").Signal<number>;
    readonly allSelected: import("@angular/core").Signal<boolean>;
    constructor();
    private readonly activeLocale;
    readonly groups: import("@angular/core").Signal<{
        resource: string;
        label: string;
        actions: {
            action: string;
            code: string;
            label: string;
            checked: boolean;
        }[];
        checkedCount: number;
        all: boolean;
        some: boolean;
    }[]>;
    toggleAction(code: string): void;
    toggleAll(): void;
    toggleGroup(resource: string): void;
    protected tt(key: string): string;
    static ɵfac: i0.ɵɵFactoryDeclaration<PermissionSelectorComponent, never>;
    static ɵcmp: i0.ɵɵComponentDeclaration<PermissionSelectorComponent, "val-permission-selector", never, { "permissions": { "alias": "permissions"; "required": false; "isSignal": true; }; "actionLabels": { "alias": "actionLabels"; "required": false; "isSignal": true; }; "locale": { "alias": "locale"; "required": false; "isSignal": true; }; "header": { "alias": "header"; "required": false; "isSignal": true; }; "selected": { "alias": "selected"; "required": false; "isSignal": true; }; }, { "selected": "selectedChange"; }, never, never, true, never>;
}
