import { Request, Response } from 'express';
import { createAccessRoleDto, updateAccessRoleDto } from './access-control.dto';
import { AccessControlService } from './access-control.service';
import { PermissionUserContext } from '../../common/access-control/permission-context.types';
export declare class AccessControlController {
    private readonly service;
    constructor(service: AccessControlService);
    private assertOwner;
    private assertOwnerOrAdmin;
    getMyPermissions(req: Request & {
        user?: PermissionUserContext;
    }, res: Response): Promise<Response<any, Record<string, any>>>;
    getPermissionCatalog(req: Request & {
        user?: {
            role?: string;
        };
    }, res: Response): Promise<Response<any, Record<string, any>>>;
    getRoles(owner_id: string, req: Request & {
        user?: {
            role?: string;
        };
    }, res: Response): Promise<Response<any, Record<string, any>>>;
    getRoleById(roleId: string, owner_id: string, req: Request & {
        user?: {
            role?: string;
        };
    }, res: Response): Promise<Response<any, Record<string, any>>>;
    createRole(data: createAccessRoleDto, owner_id: string, req: Request & {
        user?: {
            role?: string;
        };
    }, res: Response): Promise<Response<any, Record<string, any>>>;
    updateRole(roleId: string, data: updateAccessRoleDto, owner_id: string, req: Request & {
        user?: {
            role?: string;
        };
    }, res: Response): Promise<Response<any, Record<string, any>>>;
    deleteRole(roleId: string, owner_id: string, req: Request & {
        user?: {
            role?: string;
        };
    }, res: Response): Promise<Response<any, Record<string, any>>>;
}
