import * as axios from 'axios';
import * as _lsk4_log from '@lsk4/log';
import { CredsVariable, CredsVariableOptions } from '../types.js';
import { Service } from './Service.js';

interface GitlabServiceOptions {
    projectId: string;
    projectName: string;
    projectPath: string;
    projectCredsUrl: string;
    projectCredsOwner: string;
    token: string;
    server: string;
    clientOptions: any;
    force: boolean;
}
declare class GitlabService extends Service {
    projectId: string;
    projectName: string;
    projectPath: string;
    projectCredsUrl: string;
    projectCredsOwner: string;
    token: string;
    server: string;
    force: boolean;
    log: _lsk4_log.ILogger;
    constructor(options: GitlabServiceOptions);
    checkConfig(): void;
    createClient(options?: any): axios.AxiosInstance;
    getServiceHostname(): string;
    getProjectUrl(): string;
    getProjectCICDSettingURL(): string;
    uploadVariableOrSecret(name: string, variable: CredsVariable, options?: CredsVariableOptions): Promise<void>;
    uploadSecret(name: string, variable: CredsVariable, options?: CredsVariableOptions): Promise<void>;
    uploadVariable(name: string, variable: CredsVariable, options?: CredsVariableOptions): Promise<void>;
    uploadEnv(): Promise<void>;
    removeOldHooks(): Promise<void>;
    uploadHook(hook: any): Promise<void>;
}

export { GitlabService };
