import { Tool } from '@modelcontextprotocol/sdk/types.js';
export interface UserPermissions {
    canCreateMetadata: boolean;
    canUpdateMetadata: boolean;
    canDeleteMetadata: boolean;
    canViewMetadata: boolean;
    canEnterData: boolean;
    canViewData: boolean;
    canImportData: boolean;
    canExportData: boolean;
    canDeleteData: boolean;
    canManageUsers: boolean;
    canManageSystem: boolean;
    canViewSystemInfo: boolean;
    canRunAnalytics: boolean;
    canManageDashboards: boolean;
    canManagePrograms: boolean;
    canEnrollTEI: boolean;
    canViewTEI: boolean;
    canManageTrackerData: boolean;
    canUseMobileFeatures: boolean;
    canConfigureMobile: boolean;
    canUseUITools: boolean;
    canConfigureApps: boolean;
    canDebugApplications: boolean;
    isReadOnly: boolean;
    authorities: string[];
}
export interface DHIS2UserInfo {
    id: string;
    displayName: string;
    username: string;
    authorities: string[];
    userGroups: Array<{
        id: string;
        name: string;
    }>;
    organisationUnits: Array<{
        id: string;
        name: string;
    }>;
    userRoles: Array<{
        id: string;
        name: string;
        authorities: string[];
    }>;
}
export declare class PermissionSystem {
    private static readonly TOOL_PERMISSIONS;
    static extractPermissionsFromDHIS2User(userInfo: DHIS2UserInfo): UserPermissions;
    static createDefaultPermissions(): UserPermissions;
    static filterToolsByPermissions(tools: Tool[], permissions: UserPermissions): Tool[];
    static getPermissionSummary(permissions: UserPermissions): {
        level: 'read-only' | 'data-entry' | 'metadata-manager' | 'system-admin' | 'developer';
        description: string;
        allowedOperations: string[];
        restrictedOperations: string[];
    };
}
//# sourceMappingURL=permission-system.d.ts.map