import mongoose from "mongoose";
import type { HiddenBodyKeys } from "../interfaces";
import type { StorageProviderType } from "../interfaces/SystemTypes";
import type { IBase } from "./Base";
export interface ICloudStorage extends IBase {
    name?: string;
    verified?: boolean;
    provider?: StorageProviderType;
    /**
     * The host (domain) of your cloud storage.
     * @example "cdn.example.com"
     */
    host?: string;
    /**
     * Storage origin URL
     * @example "https://storage.googleapis.com/<project-id>"
     */
    origin?: string;
    /**
     * Bucket name
     */
    bucket?: string;
    /**
     * Storage region
     */
    region?: string;
    /**
     * Authentication
     */
    auth?: {
        /**
         * ### NOTE: For Google Cloud Storage
         * JSON string containing "client_email" and "private_key" properties, or the external account client options.
         */
        service_account?: string;
        /**
         * ### NOTE: For AWS S3 & DigitalOcean Space Storage
         * Your AWS access key ID
         */
        key_id?: string;
        /**
         * ### NOTE: For AWS S3 & DigitalOcean Space Storage
         * Your AWS secret access key
         */
        key_secret?: string;
    };
}
export type CloudStorageDto = Omit<ICloudStorage, keyof HiddenBodyKeys>;
export declare const cloudStorageSchema: 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;
    auth?: {
        service_account?: string;
        key_id?: string;
        key_secret?: string;
    };
    name?: string;
    slug?: string;
    host?: string;
    project?: mongoose.Types.ObjectId;
    projectId?: mongoose.Types.ObjectId;
    region?: string;
    provider?: "gcloud" | "aws_s3" | "do_space";
    origin?: string;
    owner?: mongoose.Types.ObjectId;
    bucket?: string;
    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;
    verified?: boolean;
}, 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;
    auth?: {
        service_account?: string;
        key_id?: string;
        key_secret?: string;
    };
    name?: string;
    slug?: string;
    host?: string;
    project?: mongoose.Types.ObjectId;
    projectId?: mongoose.Types.ObjectId;
    region?: string;
    provider?: "gcloud" | "aws_s3" | "do_space";
    origin?: string;
    owner?: mongoose.Types.ObjectId;
    bucket?: string;
    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;
    verified?: boolean;
}>> & mongoose.FlatRecord<{
    createdAt: NativeDate;
    updatedAt: NativeDate;
} & {
    public: boolean;
    active: boolean;
    createdAt: Date;
    updatedAt: Date;
    workspace?: mongoose.Types.ObjectId;
    workspaceId?: mongoose.Types.ObjectId;
    auth?: {
        service_account?: string;
        key_id?: string;
        key_secret?: string;
    };
    name?: string;
    slug?: string;
    host?: string;
    project?: mongoose.Types.ObjectId;
    projectId?: mongoose.Types.ObjectId;
    region?: string;
    provider?: "gcloud" | "aws_s3" | "do_space";
    origin?: string;
    owner?: mongoose.Types.ObjectId;
    bucket?: string;
    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;
    verified?: boolean;
}> & {
    _id: mongoose.Types.ObjectId;
}>;
export declare const CloudStorageModel: mongoose.Model<{
    createdAt: NativeDate;
    updatedAt: NativeDate;
} & {
    public: boolean;
    active: boolean;
    createdAt: Date;
    updatedAt: Date;
    workspace?: mongoose.Types.ObjectId;
    workspaceId?: mongoose.Types.ObjectId;
    auth?: {
        service_account?: string;
        key_id?: string;
        key_secret?: string;
    };
    name?: string;
    slug?: string;
    host?: string;
    project?: mongoose.Types.ObjectId;
    projectId?: mongoose.Types.ObjectId;
    region?: string;
    provider?: "gcloud" | "aws_s3" | "do_space";
    origin?: string;
    owner?: mongoose.Types.ObjectId;
    bucket?: string;
    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;
    verified?: boolean;
}, {}, {}, {}, mongoose.Document<unknown, {}, {
    createdAt: NativeDate;
    updatedAt: NativeDate;
} & {
    public: boolean;
    active: boolean;
    createdAt: Date;
    updatedAt: Date;
    workspace?: mongoose.Types.ObjectId;
    workspaceId?: mongoose.Types.ObjectId;
    auth?: {
        service_account?: string;
        key_id?: string;
        key_secret?: string;
    };
    name?: string;
    slug?: string;
    host?: string;
    project?: mongoose.Types.ObjectId;
    projectId?: mongoose.Types.ObjectId;
    region?: string;
    provider?: "gcloud" | "aws_s3" | "do_space";
    origin?: string;
    owner?: mongoose.Types.ObjectId;
    bucket?: string;
    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;
    verified?: boolean;
}> & {
    createdAt: NativeDate;
    updatedAt: NativeDate;
} & {
    public: boolean;
    active: boolean;
    createdAt: Date;
    updatedAt: Date;
    workspace?: mongoose.Types.ObjectId;
    workspaceId?: mongoose.Types.ObjectId;
    auth?: {
        service_account?: string;
        key_id?: string;
        key_secret?: string;
    };
    name?: string;
    slug?: string;
    host?: string;
    project?: mongoose.Types.ObjectId;
    projectId?: mongoose.Types.ObjectId;
    region?: string;
    provider?: "gcloud" | "aws_s3" | "do_space";
    origin?: string;
    owner?: mongoose.Types.ObjectId;
    bucket?: string;
    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;
    verified?: boolean;
} & {
    _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;
    auth?: {
        service_account?: string;
        key_id?: string;
        key_secret?: string;
    };
    name?: string;
    slug?: string;
    host?: string;
    project?: mongoose.Types.ObjectId;
    projectId?: mongoose.Types.ObjectId;
    region?: string;
    provider?: "gcloud" | "aws_s3" | "do_space";
    origin?: string;
    owner?: mongoose.Types.ObjectId;
    bucket?: string;
    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;
    verified?: boolean;
}, 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;
    auth?: {
        service_account?: string;
        key_id?: string;
        key_secret?: string;
    };
    name?: string;
    slug?: string;
    host?: string;
    project?: mongoose.Types.ObjectId;
    projectId?: mongoose.Types.ObjectId;
    region?: string;
    provider?: "gcloud" | "aws_s3" | "do_space";
    origin?: string;
    owner?: mongoose.Types.ObjectId;
    bucket?: string;
    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;
    verified?: boolean;
}>> & mongoose.FlatRecord<{
    createdAt: NativeDate;
    updatedAt: NativeDate;
} & {
    public: boolean;
    active: boolean;
    createdAt: Date;
    updatedAt: Date;
    workspace?: mongoose.Types.ObjectId;
    workspaceId?: mongoose.Types.ObjectId;
    auth?: {
        service_account?: string;
        key_id?: string;
        key_secret?: string;
    };
    name?: string;
    slug?: string;
    host?: string;
    project?: mongoose.Types.ObjectId;
    projectId?: mongoose.Types.ObjectId;
    region?: string;
    provider?: "gcloud" | "aws_s3" | "do_space";
    origin?: string;
    owner?: mongoose.Types.ObjectId;
    bucket?: string;
    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;
    verified?: boolean;
}> & {
    _id: mongoose.Types.ObjectId;
}>>;
//# sourceMappingURL=CloudStorage.d.ts.map