import { OnInit } from '@angular/core';
import { DialogRef } from '@progress/kendo-angular-dialog';
import { AIAgentPermissionEntity, AIAgentEntityExtended, UserEntity } from '@memberjunction/core-entities';
import { RoleInfo } from '@memberjunction/core';
import { SharedService } from '@memberjunction/ng-shared';
import { GridDataResult, DataStateChangeEvent, GridComponent } from '@progress/kendo-angular-grid';
import * as i0 from "@angular/core";
/**
 * Dialog component for managing AI Agent permissions.
 * Allows viewing, adding, editing, and removing permission records for an agent.
 */
export declare class AgentPermissionsDialogComponent implements OnInit {
    dialogRef: DialogRef;
    private sharedService;
    grid: GridComponent;
    agent: AIAgentEntityExtended;
    permissions: AIAgentPermissionEntity[];
    users: UserEntity[];
    roles: RoleInfo[];
    gridData: GridDataResult;
    pageSize: number;
    skip: number;
    loading: boolean;
    loadingUsers: boolean;
    loadingRoles: boolean;
    isAddingPermission: boolean;
    editingPermission: AIAgentPermissionEntity | null;
    grantType: 'user' | 'role';
    selectedUserId: string | null;
    selectedRoleId: string | null;
    ownerName: string | null;
    newPermission: {
        CanView: boolean;
        CanRun: boolean;
        CanEdit: boolean;
        CanDelete: boolean;
        Comments: string;
    };
    get dialogTitle(): string;
    constructor(dialogRef: DialogRef, sharedService: SharedService);
    ngOnInit(): Promise<void>;
    private loadData;
    private loadPermissions;
    private loadUsers;
    private loadRoles;
    private loadOwnerName;
    private updateGridData;
    dataStateChange(state: DataStateChangeEvent): void;
    addPermission(): void;
    editPermission(permission: any): void;
    deletePermission(permission: any): Promise<void>;
    cancelEdit(): void;
    onPermissionChange(level: 'run' | 'edit' | 'delete'): void;
    canSavePermission(): boolean;
    savePermission(): Promise<void>;
    onCancel(): void;
    static ɵfac: i0.ɵɵFactoryDeclaration<AgentPermissionsDialogComponent, never>;
    static ɵcmp: i0.ɵɵComponentDeclaration<AgentPermissionsDialogComponent, "mj-agent-permissions-dialog", never, {}, {}, never, never, false, never>;
}
//# sourceMappingURL=agent-permissions-dialog.component.d.ts.map