import * as plugins from '../plugins.js';
import type * as authInterfaces from '../data/auth.js';
import type { IIpIntelligenceRecord, ISecurityBlockRule, ISecurityCompiledPolicy, ISecurityPolicyAuditEvent, TSecurityBlockRuleMatchMode, TSecurityBlockRuleType } from '../data/security-policy.js';
export interface IReq_ListSecurityBlockRules extends plugins.typedrequestInterfaces.implementsTR<plugins.typedrequestInterfaces.ITypedRequest, IReq_ListSecurityBlockRules> {
    method: 'listSecurityBlockRules';
    request: {
        identity?: authInterfaces.IIdentity;
        apiToken?: string;
    };
    response: {
        rules: ISecurityBlockRule[];
    };
}
export interface IReq_CreateSecurityBlockRule extends plugins.typedrequestInterfaces.implementsTR<plugins.typedrequestInterfaces.ITypedRequest, IReq_CreateSecurityBlockRule> {
    method: 'createSecurityBlockRule';
    request: {
        identity?: authInterfaces.IIdentity;
        apiToken?: string;
        type: TSecurityBlockRuleType;
        value: string;
        matchMode?: TSecurityBlockRuleMatchMode;
        reason?: string;
        enabled?: boolean;
    };
    response: {
        success: boolean;
        rule?: ISecurityBlockRule;
        message?: string;
    };
}
export interface IReq_UpdateSecurityBlockRule extends plugins.typedrequestInterfaces.implementsTR<plugins.typedrequestInterfaces.ITypedRequest, IReq_UpdateSecurityBlockRule> {
    method: 'updateSecurityBlockRule';
    request: {
        identity?: authInterfaces.IIdentity;
        apiToken?: string;
        id: string;
        value?: string;
        matchMode?: TSecurityBlockRuleMatchMode;
        reason?: string;
        enabled?: boolean;
    };
    response: {
        success: boolean;
        rule?: ISecurityBlockRule;
        message?: string;
    };
}
export interface IReq_DeleteSecurityBlockRule extends plugins.typedrequestInterfaces.implementsTR<plugins.typedrequestInterfaces.ITypedRequest, IReq_DeleteSecurityBlockRule> {
    method: 'deleteSecurityBlockRule';
    request: {
        identity?: authInterfaces.IIdentity;
        apiToken?: string;
        id: string;
    };
    response: {
        success: boolean;
        message?: string;
    };
}
export interface IReq_ListIpIntelligence extends plugins.typedrequestInterfaces.implementsTR<plugins.typedrequestInterfaces.ITypedRequest, IReq_ListIpIntelligence> {
    method: 'listIpIntelligence';
    request: {
        identity?: authInterfaces.IIdentity;
        apiToken?: string;
        ipAddresses?: string[];
        limit?: number;
    };
    response: {
        records: IIpIntelligenceRecord[];
    };
}
export interface IReq_GetCompiledSecurityPolicy extends plugins.typedrequestInterfaces.implementsTR<plugins.typedrequestInterfaces.ITypedRequest, IReq_GetCompiledSecurityPolicy> {
    method: 'getCompiledSecurityPolicy';
    request: {
        identity?: authInterfaces.IIdentity;
        apiToken?: string;
    };
    response: {
        policy: ISecurityCompiledPolicy;
    };
}
export interface IReq_ListSecurityPolicyAudit extends plugins.typedrequestInterfaces.implementsTR<plugins.typedrequestInterfaces.ITypedRequest, IReq_ListSecurityPolicyAudit> {
    method: 'listSecurityPolicyAudit';
    request: {
        identity?: authInterfaces.IIdentity;
        apiToken?: string;
        limit?: number;
    };
    response: {
        events: ISecurityPolicyAuditEvent[];
    };
}
export interface IReq_RefreshIpIntelligence extends plugins.typedrequestInterfaces.implementsTR<plugins.typedrequestInterfaces.ITypedRequest, IReq_RefreshIpIntelligence> {
    method: 'refreshIpIntelligence';
    request: {
        identity?: authInterfaces.IIdentity;
        apiToken?: string;
        ipAddress: string;
    };
    response: {
        success: boolean;
        record?: IIpIntelligenceRecord;
        message?: string;
    };
}
