import * as interfaces from '../dist_ts_interfaces/index.js';
import type { DcRouterApiClient } from './classes.dcrouterapiclient.js';
export declare class Certificate {
    private clientRef;
    domain: string;
    routeNames: string[];
    status: interfaces.requests.TCertificateStatus;
    source: interfaces.requests.TCertificateSource;
    tlsMode: 'terminate' | 'terminate-and-reencrypt' | 'passthrough';
    expiryDate?: string;
    issuer?: string;
    issuedAt?: string;
    error?: string;
    canReprovision: boolean;
    backoffInfo?: {
        failures: number;
        retryAfter?: string;
        lastError?: string;
    };
    constructor(clientRef: DcRouterApiClient, data: interfaces.requests.ICertificateInfo);
    reprovision(): Promise<void>;
    delete(): Promise<void>;
    export(): Promise<{
        id: string;
        domainName: string;
        created: number;
        validUntil: number;
        privateKey: string;
        publicKey: string;
        csr: string;
    } | undefined>;
}
export interface ICertificateSummary {
    total: number;
    valid: number;
    expiring: number;
    expired: number;
    failed: number;
    unknown: number;
}
export declare class CertificateManager {
    private clientRef;
    constructor(clientRef: DcRouterApiClient);
    list(): Promise<{
        certificates: Certificate[];
        summary: ICertificateSummary;
    }>;
    import(cert: {
        id: string;
        domainName: string;
        created: number;
        validUntil: number;
        privateKey: string;
        publicKey: string;
        csr: string;
    }): Promise<void>;
}
