import * as plugins from '../plugins.js';
import type * as authInterfaces from '../data/auth.js';
import type { ISecurityProfile, IRouteSecurity } from '../data/route-management.js';
/**
 * Get all security profiles.
 */
export interface IReq_GetSecurityProfiles extends plugins.typedrequestInterfaces.implementsTR<plugins.typedrequestInterfaces.ITypedRequest, IReq_GetSecurityProfiles> {
    method: 'getSecurityProfiles';
    request: {
        identity?: authInterfaces.IIdentity;
        apiToken?: string;
    };
    response: {
        profiles: ISecurityProfile[];
    };
}
/**
 * Get a single security profile by ID.
 */
export interface IReq_GetSecurityProfile extends plugins.typedrequestInterfaces.implementsTR<plugins.typedrequestInterfaces.ITypedRequest, IReq_GetSecurityProfile> {
    method: 'getSecurityProfile';
    request: {
        identity?: authInterfaces.IIdentity;
        apiToken?: string;
        id: string;
    };
    response: {
        profile: ISecurityProfile | null;
    };
}
/**
 * Create a new security profile.
 */
export interface IReq_CreateSecurityProfile extends plugins.typedrequestInterfaces.implementsTR<plugins.typedrequestInterfaces.ITypedRequest, IReq_CreateSecurityProfile> {
    method: 'createSecurityProfile';
    request: {
        identity?: authInterfaces.IIdentity;
        apiToken?: string;
        name: string;
        description?: string;
        security: IRouteSecurity;
        extendsProfiles?: string[];
    };
    response: {
        success: boolean;
        id?: string;
        message?: string;
    };
}
/**
 * Update a security profile.
 */
export interface IReq_UpdateSecurityProfile extends plugins.typedrequestInterfaces.implementsTR<plugins.typedrequestInterfaces.ITypedRequest, IReq_UpdateSecurityProfile> {
    method: 'updateSecurityProfile';
    request: {
        identity?: authInterfaces.IIdentity;
        apiToken?: string;
        id: string;
        name?: string;
        description?: string;
        security?: IRouteSecurity;
        extendsProfiles?: string[];
    };
    response: {
        success: boolean;
        affectedRouteCount?: number;
        message?: string;
    };
}
/**
 * Delete a security profile.
 */
export interface IReq_DeleteSecurityProfile extends plugins.typedrequestInterfaces.implementsTR<plugins.typedrequestInterfaces.ITypedRequest, IReq_DeleteSecurityProfile> {
    method: 'deleteSecurityProfile';
    request: {
        identity?: authInterfaces.IIdentity;
        apiToken?: string;
        id: string;
        force?: boolean;
    };
    response: {
        success: boolean;
        message?: string;
    };
}
/**
 * Get which routes reference a security profile.
 */
export interface IReq_GetSecurityProfileUsage extends plugins.typedrequestInterfaces.implementsTR<plugins.typedrequestInterfaces.ITypedRequest, IReq_GetSecurityProfileUsage> {
    method: 'getSecurityProfileUsage';
    request: {
        identity?: authInterfaces.IIdentity;
        apiToken?: string;
        id: string;
    };
    response: {
        routes: Array<{
            id: string;
            name: string;
        }>;
    };
}
