import { IExecuteFunctions, ILoadOptionsFunctions } from 'n8n-workflow';
import { AirCredentials } from '../../../../credentials/AirApi.credentials';
export interface Policy {
    _id: string;
    name: string;
    description: string;
    priority: number;
    enabled: boolean;
    organizationIds: string[];
    createdAt: string;
    createdBy: string;
    updatedAt: string;
    updatedBy: string;
    deletable: boolean;
}
export interface PoliciesResponse {
    success: boolean;
    result: {
        entities: Policy[];
        filters: Array<{
            name: string;
            type: string;
            options: string[];
            filterUrl: string | null;
        }>;
        sortables: string[];
        totalEntityCount: number;
        currentPage: number;
        pageSize: number;
        previousPage: number;
        totalPageCount: number;
        nextPage: number;
    };
    statusCode: number;
    errors: string[];
}
export interface CreatePolicyRequest {
    name: string;
    description: string;
    priority: number;
    enabled: boolean;
    organizationIds: number[];
    rules?: any[];
}
export interface CreatePolicyResponse {
    success: boolean;
    result: Policy;
    statusCode: number;
    errors: string[];
}
export interface UpdatePolicyRequest {
    name: string;
    description: string;
    priority: number;
    enabled: boolean;
    organizationIds: number[];
    rules?: any[];
}
export interface UpdatePolicyResponse {
    success: boolean;
    result: Policy;
    statusCode: number;
    errors: string[];
}
export interface DeletePolicyResponse {
    success: boolean;
    result: null;
    statusCode: number;
    errors: string[];
}
export interface GetPolicyResponse {
    success: boolean;
    result: Policy;
    statusCode: number;
    errors: string[];
}
export interface UpdatePoliciesPrioritiesRequest {
    policies: Array<{
        _id: string;
        priority: number;
    }>;
}
export interface UpdatePoliciesPrioritiesResponse {
    success: boolean;
    result: Policy[];
    statusCode: number;
    errors: string[];
}
export interface GetPolicyMatchStatsRequest {
    filter: {
        searchTerm?: string;
        name?: string;
        ipAddress?: string;
        groupId?: string;
        groupFullPath?: string;
        managedStatus?: string[];
        isolationStatus?: string[];
        platform?: string[];
        issue?: string;
        onlineStatus?: string[];
        tags?: string[];
        version?: string;
        policy?: string;
        includedEndpointIds?: string[];
        excludedEndpointIds?: string[];
        organizationIds?: (string | number)[];
    };
}
export interface GetPolicyMatchStatsResponse {
    success: boolean;
    result: Array<{
        policyId: string;
        policyName: string;
        matchCount: number;
        organizationId: number;
    }>;
    statusCode: number;
    errors: string[];
}
export declare const api: {
    getPolicies(context: IExecuteFunctions | ILoadOptionsFunctions, credentials: AirCredentials, organizationIds?: string | string[], queryParams?: Record<string, string | number>): Promise<PoliciesResponse>;
    createPolicy(context: IExecuteFunctions | ILoadOptionsFunctions, credentials: AirCredentials, data: CreatePolicyRequest): Promise<CreatePolicyResponse>;
    updatePolicy(context: IExecuteFunctions | ILoadOptionsFunctions, credentials: AirCredentials, id: string, data: UpdatePolicyRequest): Promise<UpdatePolicyResponse>;
    deletePolicy(context: IExecuteFunctions | ILoadOptionsFunctions, credentials: AirCredentials, id: string): Promise<DeletePolicyResponse>;
    getPolicyById(context: IExecuteFunctions | ILoadOptionsFunctions, credentials: AirCredentials, id: string): Promise<GetPolicyResponse>;
    updatePoliciesPriorities(context: IExecuteFunctions | ILoadOptionsFunctions, credentials: AirCredentials, data: UpdatePoliciesPrioritiesRequest): Promise<UpdatePoliciesPrioritiesResponse>;
    getPolicyMatchStats(context: IExecuteFunctions | ILoadOptionsFunctions, credentials: AirCredentials, data: GetPolicyMatchStatsRequest): Promise<GetPolicyMatchStatsResponse>;
};
