import axios from 'axios';

type SecretFile = {
    name: string;
    filename: string;
    credType?: string;
    content?: string;
    handler: (any: any) => Record<string, any>;
};
type Secrets = {
    secrets?: Record<string, string>;
    variables?: Record<string, string>;
    files?: Array<SecretFile>;
    hooks?: Array<any>;
};
declare class Service {
    projectId?: string;
    projectName?: string;
    projectPath?: string;
    projectCredsUrl?: string;
    token: string;
    server: string;
    force: boolean;
    client: axios.AxiosInstance;
    constructor(options: any);
    checkConfig(): void;
    getBaseUrl(): any;
    getHeaders(): {};
    getServiceLink(): any;
    getProjectName(): string;
    getProjectId(): string;
    getProjectPath(): string;
    getProjectUrl(): any;
    getProjectCredsUrl(): string;
    getProjectCICDSettingURL(): any;
    uploadSecret(key: string, content: string): Promise<void>;
    uploadVariable(key: string, content: string): Promise<void>;
    removeOldHooks(): Promise<void>;
    uploadHook(dataHook: any): Promise<void>;
    uploadHooks(env: Secrets): Promise<void>;
    uploadAll(env: Secrets): Promise<void>;
}

export { Service };
