/**
 * Cloudflare MTLS-CERTIFICATES API
 *
 * Generated from Cloudflare TypeScript SDK.
 * DO NOT EDIT - regenerate with: bun scripts/generate.ts --service mtls-certificates
 */
import * as Schema from "effect/Schema";
import type * as HttpClient from "effect/unstable/http/HttpClient";
import * as API from "../client/api.ts";
import type { Credentials } from "../credentials.ts";
import { type DefaultErrors } from "../errors.ts";
export interface GetAssociationRequest {
    mtlsCertificateId: string;
    /** Identifier. */
    accountId: string;
}
export declare const GetAssociationRequest: Schema.Schema<GetAssociationRequest>;
export interface GetAssociationResponse {
    result: {
        service?: string | null;
        status?: string | null;
    }[];
}
export declare const GetAssociationResponse: Schema.Schema<GetAssociationResponse>;
export type GetAssociationError = DefaultErrors;
export declare const getAssociation: API.PaginatedOperationMethod<GetAssociationRequest, GetAssociationResponse, GetAssociationError, Credentials | HttpClient.HttpClient>;
export interface GetMtlsCertificateRequest {
    mtlsCertificateId: string;
    /** Identifier. */
    accountId: string;
}
export declare const GetMtlsCertificateRequest: Schema.Schema<GetMtlsCertificateRequest>;
export interface GetMtlsCertificateResponse {
    /** Identifier. */
    id?: string | null;
    /** Indicates whether the certificate is a CA or leaf certificate. */
    ca?: boolean | null;
    /** The uploaded root CA certificate. */
    certificates?: string | null;
    /** When the certificate expires. */
    expiresOn?: string | null;
    /** The certificate authority that issued the certificate. */
    issuer?: string | null;
    /** Optional unique name for the certificate. Only used for human readability. */
    name?: string | null;
    /** The certificate serial number. */
    serialNumber?: string | null;
    /** The type of hash used for the certificate. */
    signature?: string | null;
    /** This is the time the certificate was uploaded. */
    uploadedOn?: string | null;
}
export declare const GetMtlsCertificateResponse: Schema.Schema<GetMtlsCertificateResponse>;
export type GetMtlsCertificateError = DefaultErrors;
export declare const getMtlsCertificate: API.OperationMethod<GetMtlsCertificateRequest, GetMtlsCertificateResponse, GetMtlsCertificateError, Credentials | HttpClient.HttpClient>;
export interface ListMtlsCertificatesRequest {
    /** Identifier. */
    accountId: string;
}
export declare const ListMtlsCertificatesRequest: Schema.Schema<ListMtlsCertificatesRequest>;
export interface ListMtlsCertificatesResponse {
    result: {
        id?: string | null;
        ca?: boolean | null;
        certificates?: string | null;
        expiresOn?: string | null;
        issuer?: string | null;
        name?: string | null;
        serialNumber?: string | null;
        signature?: string | null;
        uploadedOn?: string | null;
    }[];
}
export declare const ListMtlsCertificatesResponse: Schema.Schema<ListMtlsCertificatesResponse>;
export type ListMtlsCertificatesError = DefaultErrors;
export declare const listMtlsCertificates: API.PaginatedOperationMethod<ListMtlsCertificatesRequest, ListMtlsCertificatesResponse, ListMtlsCertificatesError, Credentials | HttpClient.HttpClient>;
export interface CreateMtlsCertificateRequest {
    /** Path param: Identifier. */
    accountId: string;
    /** Body param: Indicates whether the certificate is a CA or leaf certificate. */
    ca: boolean;
    /** Body param: The uploaded root CA certificate. */
    certificates: string;
    /** Body param: Optional unique name for the certificate. Only used for human readability. */
    name?: string;
    /** Body param: The private key for the certificate. This field is only needed for specific use cases such as using a custom certificate with Zero Trust's block page. */
    privateKey?: string;
}
export declare const CreateMtlsCertificateRequest: Schema.Schema<CreateMtlsCertificateRequest>;
export interface CreateMtlsCertificateResponse {
    /** Identifier. */
    id?: string | null;
    /** Indicates whether the certificate is a CA or leaf certificate. */
    ca?: boolean | null;
    /** The uploaded root CA certificate. */
    certificates?: string | null;
    /** When the certificate expires. */
    expiresOn?: string | null;
    /** The certificate authority that issued the certificate. */
    issuer?: string | null;
    /** Optional unique name for the certificate. Only used for human readability. */
    name?: string | null;
    /** The certificate serial number. */
    serialNumber?: string | null;
    /** The type of hash used for the certificate. */
    signature?: string | null;
    /** This is the time the certificate was updated. */
    updatedAt?: string | null;
    /** This is the time the certificate was uploaded. */
    uploadedOn?: string | null;
}
export declare const CreateMtlsCertificateResponse: Schema.Schema<CreateMtlsCertificateResponse>;
export type CreateMtlsCertificateError = DefaultErrors;
export declare const createMtlsCertificate: API.OperationMethod<CreateMtlsCertificateRequest, CreateMtlsCertificateResponse, CreateMtlsCertificateError, Credentials | HttpClient.HttpClient>;
export interface DeleteMtlsCertificateRequest {
    mtlsCertificateId: string;
    /** Identifier. */
    accountId: string;
}
export declare const DeleteMtlsCertificateRequest: Schema.Schema<DeleteMtlsCertificateRequest>;
export interface DeleteMtlsCertificateResponse {
    /** Identifier. */
    id?: string | null;
    /** Indicates whether the certificate is a CA or leaf certificate. */
    ca?: boolean | null;
    /** The uploaded root CA certificate. */
    certificates?: string | null;
    /** When the certificate expires. */
    expiresOn?: string | null;
    /** The certificate authority that issued the certificate. */
    issuer?: string | null;
    /** Optional unique name for the certificate. Only used for human readability. */
    name?: string | null;
    /** The certificate serial number. */
    serialNumber?: string | null;
    /** The type of hash used for the certificate. */
    signature?: string | null;
    /** This is the time the certificate was uploaded. */
    uploadedOn?: string | null;
}
export declare const DeleteMtlsCertificateResponse: Schema.Schema<DeleteMtlsCertificateResponse>;
export type DeleteMtlsCertificateError = DefaultErrors;
export declare const deleteMtlsCertificate: API.OperationMethod<DeleteMtlsCertificateRequest, DeleteMtlsCertificateResponse, DeleteMtlsCertificateError, Credentials | HttpClient.HttpClient>;
//# sourceMappingURL=mtls-certificates.d.ts.map