import { InputAutomationRequest } from './inquirer';
import { InitiateEventPackageUploadResponse } from '../data';
export interface AutomationNotification {
    deliveryChannel: 'EMAIL';
    deliveryAddress: string;
    language: 'pt-BR' | 'en-US';
}
export interface GenericParameter {
    name: string;
    value: string;
}
type TriggerType = 'WEBHOOK' | 'SCHEDULED';
type TriggerWebhookAuthType = 'NONE' | 'BASIC' | 'QUERY_STRING' | 'HEADER';
interface TriggerWebhookAuthCredentials {
    user?: string;
    password?: string;
    queryStringName?: string;
    queryStringValue?: string;
    headerName?: string;
    headerValue?: string;
}
interface TriggerTypeStateDetail {
    uuid: string;
    type: TriggerType;
    cronString?: string;
    authentication?: TriggerWebhookAuthType;
    credentials?: TriggerWebhookAuthCredentials;
}
export interface AutomatedIntegrationExternal {
    uuid: string;
    tenantId: string;
    name: string;
    description: string;
    repositoryUrl?: string;
    package: string;
    environmentId: string;
    headRevisionId: string | null;
    status: 'ACTIVE' | 'INACTIVE';
    trigger: TriggerTypeStateDetail;
    parameters: {
        [key: string]: any;
        custom?: GenericParameter[];
    };
    notifications: AutomationNotification[];
    limitedUsers?: string[];
    retentionPeriod: number;
    systems: string[];
    updatedAt?: string;
    createdAt: string;
    createdBy: string;
}
declare class TunnelHub {
    private readonly credentials;
    private configStore;
    private readonly m2mClientSecret;
    private readonly m2mScopes;
    constructor();
    hasCredentialsLoaded(): Promise<boolean>;
    private isMachineToMachineMode;
    private loadMachineToken;
    logout(): void;
    loginWithOAuth(this: TunnelHub, envOption: string | undefined): Promise<boolean>;
    login(envOption: string | undefined, usePassword?: boolean): Promise<boolean>;
    createPackage(environmentId: string, packageData: any): Promise<any>;
    listPackages(environmentId: string): Promise<Array<any>>;
    createNewAutomation(params: InputAutomationRequest, environmentId: string): Promise<string>;
    resolveEnvironmentId(environmentId: string): Promise<string>;
    listEnvironments(): Promise<Array<any>>;
    listAutomations(environmentId: string): Promise<Array<any>>;
    generatedDeployPreSignedUrl(automationId: string, environmentId: string): Promise<InitiateEventPackageUploadResponse>;
    uploadArtifact(preDeployParams: InitiateEventPackageUploadResponse, artifactFilePath: string): Promise<boolean>;
    deploy(deployId: string, message: string, publishVersion?: boolean): Promise<boolean>;
    private createAutomation;
    private refreshToken;
    private getTenantDetails;
    private updateCredentialsStore;
}
export default TunnelHub;
