export interface User {
    id: string;
    user_id: string;
    name: string;
    email: string;
    role?: Role;
}
export interface Role {
    id: string;
    name: string;
    features?: FeaturePermission[];
}
export interface Feature {
    id: string;
    name: string;
    permissions?: Permission[];
}
export interface Permission {
    id: string;
    name: string;
}
export interface FeaturePermission {
    feature: Feature;
    permissions: Permission[];
}
export interface CreateUserInput {
    user_id: string;
    name?: string;
    email?: string;
    role_id?: string;
}
export interface UpdateUserInput {
    name?: string;
    email?: string;
}
export interface CreateRoleInput {
    name: string;
    features?: FeaturePermissionInput[];
}
export interface FeaturePermissionInput {
    feature_id: string;
    permission_ids: string[];
}
export interface CreateFeatureInput {
    name: string;
}
export interface CreatePermissionInput {
    name: string;
}
/**
 * GraphQL resolvers for RBAC operations.
 * Provides full CRUD operations for users, roles, features, and permissions.
 *
 * @example
 * Usage with Apollo Server:
 * const server = new ApolloServer({ typeDefs, resolvers: rbacResolvers, ... });
 */
export declare const rbacResolvers: {
    Query: {
        /**
         * Get all users with pagination support
         */
        users(_: any, args: {
            page?: number;
            limit?: number;
            search?: string;
        }): Promise<{
            data: import("../../adapters/DatabaseAdapter").DatabaseUser[];
            pagination: {
                page: number;
                limit: number;
                total: number;
                pages: number;
            };
        }>;
        /**
         * Get user by ID
         */
        user(_: any, args: {
            user_id: string;
        }): Promise<import("../../adapters/DatabaseAdapter").DatabaseUser | null>;
        /**
         * Get all roles
         */
        roles(): Promise<import("../../adapters/DatabaseAdapter").DatabaseRole[]>;
        /**
         * Get role by ID
         */
        role(_: any, args: {
            id: string;
        }): Promise<import("../../adapters/DatabaseAdapter").DatabaseRole | null>;
        /**
         * Get all features
         */
        features(): Promise<import("../../adapters/DatabaseAdapter").DatabaseFeature[]>;
        /**
         * Get all permissions
         */
        permissions(): Promise<import("../../adapters/DatabaseAdapter").DatabasePermission[]>;
        /**
         * Get user permissions for a specific feature
         */
        userFeaturePermissions(_: any, args: {
            user_id: string;
            feature: string;
        }): Promise<string[]>;
        /**
         * Get dashboard statistics
         */
        rbacStats(): Promise<{
            users: number;
            roles: number;
            features: number;
            permissions: number;
        }>;
    };
    Mutation: {
        /**
         * Create a new user
         */
        createUser(_: any, args: {
            input: CreateUserInput;
        }): Promise<import("../../adapters/DatabaseAdapter").DatabaseUser | null>;
        /**
         * Update a user
         */
        updateUser(_: any, args: {
            user_id: string;
            input: UpdateUserInput;
        }): Promise<import("../../adapters/DatabaseAdapter").DatabaseUser | null>;
        /**
         * Delete a user
         */
        deleteUser(_: any, args: {
            user_id: string;
        }): Promise<boolean>;
        /**
         * Assign role to user
         */
        assignRole(_: any, args: {
            user_id: string;
            role_name: string;
        }): Promise<import("../../adapters/DatabaseAdapter").DatabaseUser | null>;
        /**
         * Create a new role
         */
        createRole(_: any, args: {
            input: CreateRoleInput;
        }): Promise<import("../../adapters/DatabaseAdapter").DatabaseRole | null>;
        /**
         * Update a role
         */
        updateRole(_: any, args: {
            id: string;
            input: CreateRoleInput;
        }): Promise<import("../../adapters/DatabaseAdapter").DatabaseRole | null>;
        /**
         * Delete a role
         */
        deleteRole(_: any, args: {
            id: string;
        }): Promise<boolean>;
        /**
         * Create a new feature
         */
        createFeature(_: any, args: {
            input: CreateFeatureInput;
        }): Promise<import("../../adapters/DatabaseAdapter").DatabaseFeature>;
        /**
         * Update a feature
         */
        updateFeature(_: any, args: {
            id: string;
            input: CreateFeatureInput;
        }): Promise<import("../../adapters/DatabaseAdapter").DatabaseFeature | null>;
        /**
         * Delete a feature
         */
        deleteFeature(_: any, args: {
            id: string;
        }): Promise<boolean>;
        /**
         * Create a new permission
         */
        createPermission(_: any, args: {
            input: CreatePermissionInput;
        }): Promise<import("../../adapters/DatabaseAdapter").DatabasePermission>;
        /**
         * Update a permission
         */
        updatePermission(_: any, args: {
            id: string;
            input: CreatePermissionInput;
        }): Promise<import("../../adapters/DatabaseAdapter").DatabasePermission | null>;
        /**
         * Delete a permission
         */
        deletePermission(_: any, args: {
            id: string;
        }): Promise<boolean>;
    };
};
