import { Resource, SecurityHubFinding } from "./libs";
import { IssueObject } from "jira-client";
interface SecurityHubJiraSyncOptions {
    region?: string;
    severities?: string[];
    customJiraFields?: {
        [id: string]: any;
    };
    epicKey?: string;
}
interface UpdateForReturn {
    action: string;
    webUrl: string;
    summary: string;
}
export interface LabelConfig {
    labelField: string;
    labelPrefix?: string;
    labelDelimiter?: string;
}
export declare class SecurityHubJiraSync {
    private readonly jira;
    private readonly securityHub;
    private readonly customJiraFields;
    private readonly region;
    private readonly epicKey;
    constructor(options?: SecurityHubJiraSyncOptions);
    sync(): Promise<void>;
    getAWSAccountID(): Promise<string>;
    closeIssuesForResolvedFindings(jiraIssues: IssueObject[], shFindings: SecurityHubFinding[]): Promise<UpdateForReturn[]>;
    makeResourceList(resources: Resource[] | undefined): string;
    createSecurityHubFindingUrlThroughFilters(findingId: string): string;
    createIssueBody(finding: SecurityHubFinding): string;
    createSecurityHubFindingUrl(standardsControlArn?: string): string;
    getSeverityMapping: (severity: string) => "2" | "3" | "5" | "4" | "1";
    getPriorityId: (severity: string, priorities: any[]) => any;
    getPriorityNumber: (severity: string, isEnterprise?: boolean) => string;
    createLabels(finding: SecurityHubFinding, identifyingLabels: string[], config: LabelConfig[]): string[];
    createJiraIssueFromFinding(finding: SecurityHubFinding, identifyingLabels: string[]): Promise<{
        action: string;
        webUrl: any;
        summary: any;
    }>;
    createJiraIssuesForNewFindings(jiraIssues: IssueObject[], shFindings: SecurityHubFinding[], identifyingLabels: string[]): Promise<UpdateForReturn[]>;
}
export {};
