import { HttpClient } from '@angular/common/http';
import { Observable } from 'rxjs';
import { ValtechAuthConfig } from '../auth/types';
import * as i0 from "@angular/core";
export type PermissionScope = 'app' | 'org' | 'internal';
export interface PermissionResource {
    resource: string;
    scope: PermissionScope;
    appId?: string;
    actions: string[];
}
export interface PermissionCatalogResponse {
    operationId: string;
    appId: string;
    permissions: PermissionResource[];
}
/**
 * Consume el catálogo de permisos del backend (`GET /org/{orgId}/permissions-catalog`).
 * El backend es la fuente de verdad de qué permisos existen y de su alcance
 * (globales de plataforma vs. propios de una app). La respuesta incluye el
 * `appId` del request para que la vista distinga la app actual.
 *
 * Promovido desde `showcase` a la lib bajo el proceso de ADR-021. Usa
 * `VALTECH_AUTH_CONFIG.apiUrl` (como `OrgService`) en vez del `environment` de la
 * app — la lib no importa el environment del consumer.
 */
export declare class PermissionCatalogService {
    private config;
    private http;
    constructor(config: ValtechAuthConfig, http: HttpClient);
    getCatalog(orgId: string): Observable<PermissionCatalogResponse>;
    static ɵfac: i0.ɵɵFactoryDeclaration<PermissionCatalogService, never>;
    static ɵprov: i0.ɵɵInjectableDeclaration<PermissionCatalogService>;
}
