/**
 * ListSupervisorPoliciesUseCase
 *
 * Returns every persisted {@link SupervisorPolicy} grouped by scope kind
 * (global/app/repo/feature). Powers the top-level /supervisor dashboard
 * (FR-31). Read-only — no DB writes.
 *
 * Per-scope auth is still enforced by the underlying repository; this
 * use case is a flat read intended for the operator-facing dashboard,
 * not for cross-tenant data exfiltration. Callers MUST gate the route
 * on the same feature flag (`collaboration`) used elsewhere in this
 * spec to avoid accidentally exposing the surface (NFR-14).
 */
import type { ISupervisorPolicyRepository } from '../../ports/output/repositories/supervisor-policy-repository.interface.js';
import type { SupervisorPolicy } from '../../../domain/generated/output.js';
export interface SupervisorPoliciesByScope {
    global: SupervisorPolicy[];
    app: SupervisorPolicy[];
    repo: SupervisorPolicy[];
    /** Per-feature overrides — every row with featureId set, regardless of parent scopeType. */
    feature: SupervisorPolicy[];
}
export interface ListSupervisorPoliciesOutput {
    policies: SupervisorPolicy[];
    byScope: SupervisorPoliciesByScope;
    total: number;
}
export declare class ListSupervisorPoliciesUseCase {
    private readonly policyRepository;
    constructor(policyRepository: ISupervisorPolicyRepository);
    execute(): Promise<ListSupervisorPoliciesOutput>;
}
//# sourceMappingURL=list-supervisor-policies.use-case.d.ts.map