import type { ObjectId } from "mongoose";
import mongoose from "mongoose";
import type { HiddenBodyKeys } from "../interfaces";
import type { BackupStatus, CloudDatabaseType } from "../interfaces/SystemTypes";
import type { IBase } from "./Base";
export interface ICloudDatabaseBackup extends IBase {
    name?: string;
    status?: BackupStatus;
    /**
     * Backup file path
     */
    path?: string;
    /**
     * Backup file URL
     */
    url?: string;
    type?: CloudDatabaseType;
    dbSlug?: string;
    database?: string | ObjectId;
}
export type CloudDatabaseBackupDto = Omit<ICloudDatabaseBackup, keyof HiddenBodyKeys>;
export declare const cloudDatabaseBackupSchema: mongoose.Schema<any, mongoose.Model<any, any, any, any, any, any>, {}, {}, {}, {}, {
    collection: string;
    timestamps: true;
}, {
    createdAt: NativeDate;
    updatedAt: NativeDate;
} & {
    public: boolean;
    active: boolean;
    createdAt: Date;
    updatedAt: Date;
    workspace?: mongoose.Types.ObjectId;
    workspaceId?: mongoose.Types.ObjectId;
    name?: string;
    slug?: string;
    path?: string;
    url?: string;
    project?: mongoose.Types.ObjectId;
    projectId?: mongoose.Types.ObjectId;
    status?: "start" | "success" | "in_progress" | "failed" | "cancelled";
    type?: "mongodb" | "mysql" | "mariadb" | "postgresql" | "sqlserver" | "sqlite" | "redis" | "dynamodb";
    owner?: mongoose.Types.ObjectId;
    database?: mongoose.Types.ObjectId;
    metadata?: any;
    ownerSlug?: string;
    ownerId?: mongoose.Types.ObjectId;
    workspaceSlug?: string;
    updatedBy?: mongoose.Types.ObjectId;
    updatedById?: mongoose.Types.ObjectId;
    deletedBy?: mongoose.Types.ObjectId;
    deletedById?: mongoose.Types.ObjectId;
    deletedAt?: Date;
    migratedAt?: Date;
    dbSlug?: string;
}, mongoose.Document<unknown, {}, mongoose.FlatRecord<{
    createdAt: NativeDate;
    updatedAt: NativeDate;
} & {
    public: boolean;
    active: boolean;
    createdAt: Date;
    updatedAt: Date;
    workspace?: mongoose.Types.ObjectId;
    workspaceId?: mongoose.Types.ObjectId;
    name?: string;
    slug?: string;
    path?: string;
    url?: string;
    project?: mongoose.Types.ObjectId;
    projectId?: mongoose.Types.ObjectId;
    status?: "start" | "success" | "in_progress" | "failed" | "cancelled";
    type?: "mongodb" | "mysql" | "mariadb" | "postgresql" | "sqlserver" | "sqlite" | "redis" | "dynamodb";
    owner?: mongoose.Types.ObjectId;
    database?: mongoose.Types.ObjectId;
    metadata?: any;
    ownerSlug?: string;
    ownerId?: mongoose.Types.ObjectId;
    workspaceSlug?: string;
    updatedBy?: mongoose.Types.ObjectId;
    updatedById?: mongoose.Types.ObjectId;
    deletedBy?: mongoose.Types.ObjectId;
    deletedById?: mongoose.Types.ObjectId;
    deletedAt?: Date;
    migratedAt?: Date;
    dbSlug?: string;
}>> & mongoose.FlatRecord<{
    createdAt: NativeDate;
    updatedAt: NativeDate;
} & {
    public: boolean;
    active: boolean;
    createdAt: Date;
    updatedAt: Date;
    workspace?: mongoose.Types.ObjectId;
    workspaceId?: mongoose.Types.ObjectId;
    name?: string;
    slug?: string;
    path?: string;
    url?: string;
    project?: mongoose.Types.ObjectId;
    projectId?: mongoose.Types.ObjectId;
    status?: "start" | "success" | "in_progress" | "failed" | "cancelled";
    type?: "mongodb" | "mysql" | "mariadb" | "postgresql" | "sqlserver" | "sqlite" | "redis" | "dynamodb";
    owner?: mongoose.Types.ObjectId;
    database?: mongoose.Types.ObjectId;
    metadata?: any;
    ownerSlug?: string;
    ownerId?: mongoose.Types.ObjectId;
    workspaceSlug?: string;
    updatedBy?: mongoose.Types.ObjectId;
    updatedById?: mongoose.Types.ObjectId;
    deletedBy?: mongoose.Types.ObjectId;
    deletedById?: mongoose.Types.ObjectId;
    deletedAt?: Date;
    migratedAt?: Date;
    dbSlug?: string;
}> & {
    _id: mongoose.Types.ObjectId;
}>;
export declare const CloudDatabaseBackupModel: mongoose.Model<{
    createdAt: NativeDate;
    updatedAt: NativeDate;
} & {
    public: boolean;
    active: boolean;
    createdAt: Date;
    updatedAt: Date;
    workspace?: mongoose.Types.ObjectId;
    workspaceId?: mongoose.Types.ObjectId;
    name?: string;
    slug?: string;
    path?: string;
    url?: string;
    project?: mongoose.Types.ObjectId;
    projectId?: mongoose.Types.ObjectId;
    status?: "start" | "success" | "in_progress" | "failed" | "cancelled";
    type?: "mongodb" | "mysql" | "mariadb" | "postgresql" | "sqlserver" | "sqlite" | "redis" | "dynamodb";
    owner?: mongoose.Types.ObjectId;
    database?: mongoose.Types.ObjectId;
    metadata?: any;
    ownerSlug?: string;
    ownerId?: mongoose.Types.ObjectId;
    workspaceSlug?: string;
    updatedBy?: mongoose.Types.ObjectId;
    updatedById?: mongoose.Types.ObjectId;
    deletedBy?: mongoose.Types.ObjectId;
    deletedById?: mongoose.Types.ObjectId;
    deletedAt?: Date;
    migratedAt?: Date;
    dbSlug?: string;
}, {}, {}, {}, mongoose.Document<unknown, {}, {
    createdAt: NativeDate;
    updatedAt: NativeDate;
} & {
    public: boolean;
    active: boolean;
    createdAt: Date;
    updatedAt: Date;
    workspace?: mongoose.Types.ObjectId;
    workspaceId?: mongoose.Types.ObjectId;
    name?: string;
    slug?: string;
    path?: string;
    url?: string;
    project?: mongoose.Types.ObjectId;
    projectId?: mongoose.Types.ObjectId;
    status?: "start" | "success" | "in_progress" | "failed" | "cancelled";
    type?: "mongodb" | "mysql" | "mariadb" | "postgresql" | "sqlserver" | "sqlite" | "redis" | "dynamodb";
    owner?: mongoose.Types.ObjectId;
    database?: mongoose.Types.ObjectId;
    metadata?: any;
    ownerSlug?: string;
    ownerId?: mongoose.Types.ObjectId;
    workspaceSlug?: string;
    updatedBy?: mongoose.Types.ObjectId;
    updatedById?: mongoose.Types.ObjectId;
    deletedBy?: mongoose.Types.ObjectId;
    deletedById?: mongoose.Types.ObjectId;
    deletedAt?: Date;
    migratedAt?: Date;
    dbSlug?: string;
}> & {
    createdAt: NativeDate;
    updatedAt: NativeDate;
} & {
    public: boolean;
    active: boolean;
    createdAt: Date;
    updatedAt: Date;
    workspace?: mongoose.Types.ObjectId;
    workspaceId?: mongoose.Types.ObjectId;
    name?: string;
    slug?: string;
    path?: string;
    url?: string;
    project?: mongoose.Types.ObjectId;
    projectId?: mongoose.Types.ObjectId;
    status?: "start" | "success" | "in_progress" | "failed" | "cancelled";
    type?: "mongodb" | "mysql" | "mariadb" | "postgresql" | "sqlserver" | "sqlite" | "redis" | "dynamodb";
    owner?: mongoose.Types.ObjectId;
    database?: mongoose.Types.ObjectId;
    metadata?: any;
    ownerSlug?: string;
    ownerId?: mongoose.Types.ObjectId;
    workspaceSlug?: string;
    updatedBy?: mongoose.Types.ObjectId;
    updatedById?: mongoose.Types.ObjectId;
    deletedBy?: mongoose.Types.ObjectId;
    deletedById?: mongoose.Types.ObjectId;
    deletedAt?: Date;
    migratedAt?: Date;
    dbSlug?: string;
} & {
    _id: mongoose.Types.ObjectId;
}, mongoose.Schema<any, mongoose.Model<any, any, any, any, any, any>, {}, {}, {}, {}, {
    collection: string;
    timestamps: true;
}, {
    createdAt: NativeDate;
    updatedAt: NativeDate;
} & {
    public: boolean;
    active: boolean;
    createdAt: Date;
    updatedAt: Date;
    workspace?: mongoose.Types.ObjectId;
    workspaceId?: mongoose.Types.ObjectId;
    name?: string;
    slug?: string;
    path?: string;
    url?: string;
    project?: mongoose.Types.ObjectId;
    projectId?: mongoose.Types.ObjectId;
    status?: "start" | "success" | "in_progress" | "failed" | "cancelled";
    type?: "mongodb" | "mysql" | "mariadb" | "postgresql" | "sqlserver" | "sqlite" | "redis" | "dynamodb";
    owner?: mongoose.Types.ObjectId;
    database?: mongoose.Types.ObjectId;
    metadata?: any;
    ownerSlug?: string;
    ownerId?: mongoose.Types.ObjectId;
    workspaceSlug?: string;
    updatedBy?: mongoose.Types.ObjectId;
    updatedById?: mongoose.Types.ObjectId;
    deletedBy?: mongoose.Types.ObjectId;
    deletedById?: mongoose.Types.ObjectId;
    deletedAt?: Date;
    migratedAt?: Date;
    dbSlug?: string;
}, mongoose.Document<unknown, {}, mongoose.FlatRecord<{
    createdAt: NativeDate;
    updatedAt: NativeDate;
} & {
    public: boolean;
    active: boolean;
    createdAt: Date;
    updatedAt: Date;
    workspace?: mongoose.Types.ObjectId;
    workspaceId?: mongoose.Types.ObjectId;
    name?: string;
    slug?: string;
    path?: string;
    url?: string;
    project?: mongoose.Types.ObjectId;
    projectId?: mongoose.Types.ObjectId;
    status?: "start" | "success" | "in_progress" | "failed" | "cancelled";
    type?: "mongodb" | "mysql" | "mariadb" | "postgresql" | "sqlserver" | "sqlite" | "redis" | "dynamodb";
    owner?: mongoose.Types.ObjectId;
    database?: mongoose.Types.ObjectId;
    metadata?: any;
    ownerSlug?: string;
    ownerId?: mongoose.Types.ObjectId;
    workspaceSlug?: string;
    updatedBy?: mongoose.Types.ObjectId;
    updatedById?: mongoose.Types.ObjectId;
    deletedBy?: mongoose.Types.ObjectId;
    deletedById?: mongoose.Types.ObjectId;
    deletedAt?: Date;
    migratedAt?: Date;
    dbSlug?: string;
}>> & mongoose.FlatRecord<{
    createdAt: NativeDate;
    updatedAt: NativeDate;
} & {
    public: boolean;
    active: boolean;
    createdAt: Date;
    updatedAt: Date;
    workspace?: mongoose.Types.ObjectId;
    workspaceId?: mongoose.Types.ObjectId;
    name?: string;
    slug?: string;
    path?: string;
    url?: string;
    project?: mongoose.Types.ObjectId;
    projectId?: mongoose.Types.ObjectId;
    status?: "start" | "success" | "in_progress" | "failed" | "cancelled";
    type?: "mongodb" | "mysql" | "mariadb" | "postgresql" | "sqlserver" | "sqlite" | "redis" | "dynamodb";
    owner?: mongoose.Types.ObjectId;
    database?: mongoose.Types.ObjectId;
    metadata?: any;
    ownerSlug?: string;
    ownerId?: mongoose.Types.ObjectId;
    workspaceSlug?: string;
    updatedBy?: mongoose.Types.ObjectId;
    updatedById?: mongoose.Types.ObjectId;
    deletedBy?: mongoose.Types.ObjectId;
    deletedById?: mongoose.Types.ObjectId;
    deletedAt?: Date;
    migratedAt?: Date;
    dbSlug?: string;
}> & {
    _id: mongoose.Types.ObjectId;
}>>;
//# sourceMappingURL=CloudDatabaseBackup.d.ts.map