import { JdkHelper } from './JdkHelper';
import { Log } from '../Log';
export interface KeyInfo {
    fingerprints: Map<string, string>;
}
export interface KeyOptions {
    path: string;
    alias: string;
    keypassword: string;
    password: string;
}
export interface CreateKeyOptions extends KeyOptions {
    fullName: string;
    organizationalUnit: string;
    organization: string;
    country: string;
}
/**
 * A Wrapper of the Java keytool command-line tool
 */
export declare class KeyTool {
    private jdkHelper;
    private log;
    constructor(jdkHelper: JdkHelper, log?: Log);
    /**
     * Creates a new signing key.
     *
     * @param {CreateKeyOptions} keyOptions arguments to use to generate the key.
     * @param {boolean} overwrite true if an existing key should be overwriten.
     * @returns {Promise<void>}
     */
    createSigningKey(keyOptions: CreateKeyOptions, overwrite?: boolean): Promise<void>;
    /**
     * Runs `keytool --list` on the keystore / alias provided on the {@link KeyOptions}.
     *
     * @param {KeyOptions} keyOptions parameters for they key to be listed.
     * @returns {Promise<string>} the raw output of the `keytool --list` command
     */
    list(keyOptions: KeyOptions): Promise<string>;
    /**
     * Runs `keytool --list` on the keystore / alias provided on the {@link KeyOptions}. Currently,
     * only extracting fingerprints is implemented.
     *
     * @param {KeyOptions} keyOptions parameters for they key to be listed.
     * @returns {Promise<KeyInfo>} the parsed output of the `keytool --list` command
     */
    keyInfo(keyOptions: KeyOptions): Promise<KeyInfo>;
    /**
     * The commas in the dname field from key tool must be escaped, so that 'te,st' becomes 'te\,st'.
     */
    private static escapeDName;
    /**
     * Parses the output of `keytool --list` and returns a structured {@link KeyInfo}. Currently,
     * only extracts the fingerprints.
     */
    static parseKeyInfo(rawKeyInfo: string): KeyInfo;
}
