import { SoloError } from '../../../core/errors/solo-error.js';
import { ResourceOperation } from '../resources/resource-operation.js';
import { type ResourceType } from '../resources/resource-type.js';
import { type NamespaceName } from '../../../types/namespace/namespace-name.js';
export declare class ResourceOperationError extends SoloError {
    /**
     * Instantiates a new error with a message and an optional cause.
     * @param operation - the operation that failed.
     * @param resourceType - the type of resource that failed to read.
     * @param namespace - the namespace of the resource.
     * @param name - the name of the resource.
     * @param cause - optional underlying cause of the error.
     */
    constructor(operation: ResourceOperation, resourceType: ResourceType, namespace: NamespaceName, name: string, cause?: Error);
}
export declare class ResourceReadError extends ResourceOperationError {
    /**
     * Instantiates a new error with a message and an optional cause.
     * @param resourceType - the type of resource that failed to read.
     * @param namespace - the namespace of the resource.
     * @param name - the name of the resource.
     * @param cause - optional underlying cause of the error.
     */
    constructor(resourceType: ResourceType, namespace: NamespaceName, name: string, cause?: Error);
}
export declare class ResourceCreateError extends ResourceOperationError {
    /**
     * Instantiates a new error with a message and an optional cause.
     * @param resourceType - the type of resource that failed to create.
     * @param namespace - the namespace of the resource.
     * @param name - the name of the resource.
     * @param cause - optional underlying cause of the error.
     */
    constructor(resourceType: ResourceType, namespace: NamespaceName, name: string, cause?: Error);
}
export declare class ResourceUpdateError extends ResourceOperationError {
    /**
     * Instantiates a new error with a message and an optional cause.
     * @param resourceType - the type of resource that failed to update.
     * @param namespace - the namespace of the resource.
     * @param name - the name of the resource.
     * @param cause - optional underlying cause of the error.
     */
    constructor(resourceType: ResourceType, namespace: NamespaceName, name: string, cause?: Error);
}
export declare class ResourceDeleteError extends ResourceOperationError {
    /**
     * Instantiates a new error with a message and an optional cause.
     * @param resourceType - the type of resource that failed to delete.
     * @param namespace - the namespace of the resource.
     * @param name - the name of the resource.
     * @param cause - optional underlying cause of the error.
     */
    constructor(resourceType: ResourceType, namespace: NamespaceName, name: string, cause?: Error);
}
export declare class ResourceReplaceError extends ResourceOperationError {
    /**
     * Instantiates a new error with a message and an optional cause.
     * @param resourceType - the type of resource that failed to replace.
     * @param namespace - the namespace of the resource.
     * @param name - the name of the resource.
     * @param cause - optional underlying cause of the error.
     */
    constructor(resourceType: ResourceType, namespace: NamespaceName, name: string, cause?: Error);
}
export declare class ResourceNotFoundError extends ResourceOperationError {
    /**
     * Instantiates a new error with a message and an optional cause.
     * @param operation - the operation that failed.
     * @param resourceType - the type of resource that failed to read.
     * @param namespace - the namespace of the resource.
     * @param name - the name of the resource.
     * @param cause - optional underlying cause of the error.
     */
    constructor(operation: ResourceOperation, resourceType: ResourceType, namespace: NamespaceName, name: string, cause?: Error);
}
