import type { GenEnum, GenFile, GenMessage } from "@bufbuild/protobuf/codegenv2";
import type { Operation, OperationParams } from "./ydb_operation_pb.js";
import type { Timestamp } from "../google/protobuf/timestamp_pb.js";
import type { Message } from "@bufbuild/protobuf";
/**
 * Describes the file protos/ydb_export.proto.
 */
export declare const file_protos_ydb_export: GenFile;
/**
 * / Common
 *
 * @generated from message Ydb.Export.ExportProgress
 */
export type ExportProgress = Message<"Ydb.Export.ExportProgress"> & {};
/**
 * Describes the message Ydb.Export.ExportProgress.
 * Use `create(ExportProgressSchema)` to create a new message.
 */
export declare const ExportProgressSchema: GenMessage<ExportProgress>;
/**
 * @generated from enum Ydb.Export.ExportProgress.Progress
 */
export declare enum ExportProgress_Progress {
    /**
     * @generated from enum value: PROGRESS_UNSPECIFIED = 0;
     */
    UNSPECIFIED = 0,
    /**
     * @generated from enum value: PROGRESS_PREPARING = 1;
     */
    PREPARING = 1,
    /**
     * @generated from enum value: PROGRESS_TRANSFER_DATA = 2;
     */
    TRANSFER_DATA = 2,
    /**
     * @generated from enum value: PROGRESS_DONE = 3;
     */
    DONE = 3,
    /**
     * @generated from enum value: PROGRESS_CANCELLATION = 4;
     */
    CANCELLATION = 4,
    /**
     * @generated from enum value: PROGRESS_CANCELLED = 5;
     */
    CANCELLED = 5
}
/**
 * Describes the enum Ydb.Export.ExportProgress.Progress.
 */
export declare const ExportProgress_ProgressSchema: GenEnum<ExportProgress_Progress>;
/**
 * @generated from message Ydb.Export.ExportItemProgress
 */
export type ExportItemProgress = Message<"Ydb.Export.ExportItemProgress"> & {
    /**
     * @generated from field: uint32 parts_total = 1;
     */
    partsTotal: number;
    /**
     * @generated from field: uint32 parts_completed = 2;
     */
    partsCompleted: number;
    /**
     * @generated from field: google.protobuf.Timestamp start_time = 3;
     */
    startTime?: Timestamp;
    /**
     * @generated from field: google.protobuf.Timestamp end_time = 4;
     */
    endTime?: Timestamp;
};
/**
 * Describes the message Ydb.Export.ExportItemProgress.
 * Use `create(ExportItemProgressSchema)` to create a new message.
 */
export declare const ExportItemProgressSchema: GenMessage<ExportItemProgress>;
/**
 * / YT
 *
 * @generated from message Ydb.Export.ExportToYtSettings
 */
export type ExportToYtSettings = Message<"Ydb.Export.ExportToYtSettings"> & {
    /**
     * @generated from field: string host = 1;
     */
    host: string;
    /**
     * @generated from field: uint32 port = 2;
     */
    port: number;
    /**
     * @generated from field: string token = 3;
     */
    token: string;
    /**
     * @generated from field: repeated Ydb.Export.ExportToYtSettings.Item items = 4;
     */
    items: ExportToYtSettings_Item[];
    /**
     * @generated from field: string description = 5;
     */
    description: string;
    /**
     * @generated from field: uint32 number_of_retries = 6;
     */
    numberOfRetries: number;
    /**
     * @generated from field: bool use_type_v3 = 7;
     */
    useTypeV3: boolean;
    /**
     * Patterns (PCRE) for paths excluded from export operation.
     * - Patterns are matched against the object path relative to database root path.
     * - Object is excluded from export operation if it matches any of the specified exclude regexps.
     *
     * @generated from field: repeated string exclude_regexps = 8;
     */
    excludeRegexps: string[];
};
/**
 * Describes the message Ydb.Export.ExportToYtSettings.
 * Use `create(ExportToYtSettingsSchema)` to create a new message.
 */
export declare const ExportToYtSettingsSchema: GenMessage<ExportToYtSettings>;
/**
 * @generated from message Ydb.Export.ExportToYtSettings.Item
 */
export type ExportToYtSettings_Item = Message<"Ydb.Export.ExportToYtSettings.Item"> & {
    /**
     * Database path to a table to be exported
     *
     * @generated from field: string source_path = 1;
     */
    sourcePath: string;
    /**
     * @generated from field: string destination_path = 2;
     */
    destinationPath: string;
};
/**
 * Describes the message Ydb.Export.ExportToYtSettings.Item.
 * Use `create(ExportToYtSettings_ItemSchema)` to create a new message.
 */
export declare const ExportToYtSettings_ItemSchema: GenMessage<ExportToYtSettings_Item>;
/**
 * @generated from message Ydb.Export.ExportToYtResult
 */
export type ExportToYtResult = Message<"Ydb.Export.ExportToYtResult"> & {};
/**
 * Describes the message Ydb.Export.ExportToYtResult.
 * Use `create(ExportToYtResultSchema)` to create a new message.
 */
export declare const ExportToYtResultSchema: GenMessage<ExportToYtResult>;
/**
 * @generated from message Ydb.Export.ExportToYtMetadata
 */
export type ExportToYtMetadata = Message<"Ydb.Export.ExportToYtMetadata"> & {
    /**
     * @generated from field: Ydb.Export.ExportToYtSettings settings = 1;
     */
    settings?: ExportToYtSettings;
    /**
     * @generated from field: Ydb.Export.ExportProgress.Progress progress = 2;
     */
    progress: ExportProgress_Progress;
    /**
     * @generated from field: repeated Ydb.Export.ExportItemProgress items_progress = 3;
     */
    itemsProgress: ExportItemProgress[];
};
/**
 * Describes the message Ydb.Export.ExportToYtMetadata.
 * Use `create(ExportToYtMetadataSchema)` to create a new message.
 */
export declare const ExportToYtMetadataSchema: GenMessage<ExportToYtMetadata>;
/**
 * @generated from message Ydb.Export.ExportToYtRequest
 */
export type ExportToYtRequest = Message<"Ydb.Export.ExportToYtRequest"> & {
    /**
     * @generated from field: Ydb.Operations.OperationParams operation_params = 1;
     */
    operationParams?: OperationParams;
    /**
     * @generated from field: Ydb.Export.ExportToYtSettings settings = 2;
     */
    settings?: ExportToYtSettings;
};
/**
 * Describes the message Ydb.Export.ExportToYtRequest.
 * Use `create(ExportToYtRequestSchema)` to create a new message.
 */
export declare const ExportToYtRequestSchema: GenMessage<ExportToYtRequest>;
/**
 * @generated from message Ydb.Export.ExportToYtResponse
 */
export type ExportToYtResponse = Message<"Ydb.Export.ExportToYtResponse"> & {
    /**
     * operation.result = ExportToYtResult
     * operation.metadata = ExportToYtMetadata
     *
     * @generated from field: Ydb.Operations.Operation operation = 1;
     */
    operation?: Operation;
};
/**
 * Describes the message Ydb.Export.ExportToYtResponse.
 * Use `create(ExportToYtResponseSchema)` to create a new message.
 */
export declare const ExportToYtResponseSchema: GenMessage<ExportToYtResponse>;
/**
 * / S3
 *
 * @generated from message Ydb.Export.ExportToS3Settings
 */
export type ExportToS3Settings = Message<"Ydb.Export.ExportToS3Settings"> & {
    /**
     * @generated from field: string endpoint = 1;
     */
    endpoint: string;
    /**
     * HTTPS if not specified
     *
     * @generated from field: Ydb.Export.ExportToS3Settings.Scheme scheme = 2;
     */
    scheme: ExportToS3Settings_Scheme;
    /**
     * @generated from field: string bucket = 3;
     */
    bucket: string;
    /**
     * @generated from field: string access_key = 4;
     */
    accessKey: string;
    /**
     * @generated from field: string secret_key = 5;
     */
    secretKey: string;
    /**
     * @generated from field: repeated Ydb.Export.ExportToS3Settings.Item items = 6;
     */
    items: ExportToS3Settings_Item[];
    /**
     * @generated from field: string description = 7;
     */
    description: string;
    /**
     * @generated from field: uint32 number_of_retries = 8;
     */
    numberOfRetries: number;
    /**
     * @generated from field: Ydb.Export.ExportToS3Settings.StorageClass storage_class = 9;
     */
    storageClass: ExportToS3Settings_StorageClass;
    /**
     * Codec used to compress data. Codecs are available:
     * - zstd.
     * - zstd-N, where N is compression level, e.g. zstd-3.
     *
     * @generated from field: string compression = 10;
     */
    compression: string;
    /**
     * Region to use in requests
     *
     * @generated from field: string region = 11;
     */
    region: string;
    /**
     * disables virtual hosting style buckets aws s3 feature
     * it changes the way bucket appended to url. e.g. https//bucket_name.example.com/ vs https://example.com/bucket_name
     * details: https://docs.aws.amazon.com/AmazonS3/latest/userguide/VirtualHosting.html
     * it is especially useful for custom s3 implementations
     *
     * @generated from field: bool disable_virtual_addressing = 12;
     */
    disableVirtualAddressing: boolean;
    /**
     * Defaults to database root if not provided.
     * All object names are calculated and written relative to this path.
     *
     * @generated from field: string source_path = 13;
     */
    sourcePath: string;
    /**
     * A default S3 path prefix for all export items.
     * When specified, export writes SchemaMapping file with the list of objects.
     * Must be provided for an encrypted backup.
     *
     * @generated from field: string destination_prefix = 14;
     */
    destinationPrefix: string;
    /**
     * Settings for data encryption.
     * If encryption_settings field is not specified,
     * the resulting data will not be encrypted.
     *
     * @generated from field: Ydb.Export.EncryptionSettings encryption_settings = 15;
     */
    encryptionSettings?: EncryptionSettings;
    /**
     * Materialization of index table data.
     * By default, only index metadata is uploaded and indexes are built during import — it saves space
     * and reduces export time, but it can potentially increase the import time.
     * Indexes can be materialized, then their data will be uploaded during export and downloaded during import.
     *
     * @generated from field: bool materialize_indexes = 16;
     */
    materializeIndexes: boolean;
    /**
     * Patterns (PCRE) for paths excluded from export operation.
     * - Patterns are matched against the object path relative to the export's source_path.
     * - Object is excluded from export operation if it matches any of the specified exclude regexps.
     *
     * @generated from field: repeated string exclude_regexps = 17;
     */
    excludeRegexps: string[];
};
/**
 * Describes the message Ydb.Export.ExportToS3Settings.
 * Use `create(ExportToS3SettingsSchema)` to create a new message.
 */
export declare const ExportToS3SettingsSchema: GenMessage<ExportToS3Settings>;
/**
 * @generated from message Ydb.Export.ExportToS3Settings.Item
 */
export type ExportToS3Settings_Item = Message<"Ydb.Export.ExportToS3Settings.Item"> & {
    /**
     * Database path to a table/directory to be exported
     *
     * @generated from field: string source_path = 1;
     */
    sourcePath: string;
    /**
     * Tables are exported to one or more S3 objects.
     * The object name begins with 'destination_prefix'.
     * This prefix will be followed by '/data_PartNumber', where 'PartNumber'
     * represents the index of the part, starting at zero.
     * Not required if the default `destination_prefix` is set.
     * If not specified, actual S3 path is the default `destination_prefix` concatenated with:
     * The object path relative to the global `source_path` for a non-encrypted export
     * The anonymized path for an encrypted export
     *
     * @generated from field: string destination_prefix = 2;
     */
    destinationPrefix: string;
};
/**
 * Describes the message Ydb.Export.ExportToS3Settings.Item.
 * Use `create(ExportToS3Settings_ItemSchema)` to create a new message.
 */
export declare const ExportToS3Settings_ItemSchema: GenMessage<ExportToS3Settings_Item>;
/**
 * @generated from enum Ydb.Export.ExportToS3Settings.Scheme
 */
export declare enum ExportToS3Settings_Scheme {
    /**
     * @generated from enum value: UNSPECIFIED = 0;
     */
    UNSPECIFIED = 0,
    /**
     * @generated from enum value: HTTP = 1;
     */
    HTTP = 1,
    /**
     * @generated from enum value: HTTPS = 2;
     */
    HTTPS = 2
}
/**
 * Describes the enum Ydb.Export.ExportToS3Settings.Scheme.
 */
export declare const ExportToS3Settings_SchemeSchema: GenEnum<ExportToS3Settings_Scheme>;
/**
 * @generated from enum Ydb.Export.ExportToS3Settings.StorageClass
 */
export declare enum ExportToS3Settings_StorageClass {
    /**
     * @generated from enum value: STORAGE_CLASS_UNSPECIFIED = 0;
     */
    STORAGE_CLASS_UNSPECIFIED = 0,
    /**
     * @generated from enum value: STANDARD = 1;
     */
    STANDARD = 1,
    /**
     * @generated from enum value: REDUCED_REDUNDANCY = 2;
     */
    REDUCED_REDUNDANCY = 2,
    /**
     * @generated from enum value: STANDARD_IA = 3;
     */
    STANDARD_IA = 3,
    /**
     * @generated from enum value: ONEZONE_IA = 4;
     */
    ONEZONE_IA = 4,
    /**
     * @generated from enum value: INTELLIGENT_TIERING = 5;
     */
    INTELLIGENT_TIERING = 5,
    /**
     * @generated from enum value: GLACIER = 6;
     */
    GLACIER = 6,
    /**
     * @generated from enum value: DEEP_ARCHIVE = 7;
     */
    DEEP_ARCHIVE = 7,
    /**
     * @generated from enum value: OUTPOSTS = 8;
     */
    OUTPOSTS = 8
}
/**
 * Describes the enum Ydb.Export.ExportToS3Settings.StorageClass.
 */
export declare const ExportToS3Settings_StorageClassSchema: GenEnum<ExportToS3Settings_StorageClass>;
/**
 * @generated from message Ydb.Export.ExportToS3Result
 */
export type ExportToS3Result = Message<"Ydb.Export.ExportToS3Result"> & {};
/**
 * Describes the message Ydb.Export.ExportToS3Result.
 * Use `create(ExportToS3ResultSchema)` to create a new message.
 */
export declare const ExportToS3ResultSchema: GenMessage<ExportToS3Result>;
/**
 * @generated from message Ydb.Export.ExportToS3Metadata
 */
export type ExportToS3Metadata = Message<"Ydb.Export.ExportToS3Metadata"> & {
    /**
     * @generated from field: Ydb.Export.ExportToS3Settings settings = 1;
     */
    settings?: ExportToS3Settings;
    /**
     * @generated from field: Ydb.Export.ExportProgress.Progress progress = 2;
     */
    progress: ExportProgress_Progress;
    /**
     * @generated from field: repeated Ydb.Export.ExportItemProgress items_progress = 3;
     */
    itemsProgress: ExportItemProgress[];
};
/**
 * Describes the message Ydb.Export.ExportToS3Metadata.
 * Use `create(ExportToS3MetadataSchema)` to create a new message.
 */
export declare const ExportToS3MetadataSchema: GenMessage<ExportToS3Metadata>;
/**
 * @generated from message Ydb.Export.ExportToS3Request
 */
export type ExportToS3Request = Message<"Ydb.Export.ExportToS3Request"> & {
    /**
     * @generated from field: Ydb.Operations.OperationParams operation_params = 1;
     */
    operationParams?: OperationParams;
    /**
     * @generated from field: Ydb.Export.ExportToS3Settings settings = 2;
     */
    settings?: ExportToS3Settings;
};
/**
 * Describes the message Ydb.Export.ExportToS3Request.
 * Use `create(ExportToS3RequestSchema)` to create a new message.
 */
export declare const ExportToS3RequestSchema: GenMessage<ExportToS3Request>;
/**
 * @generated from message Ydb.Export.ExportToS3Response
 */
export type ExportToS3Response = Message<"Ydb.Export.ExportToS3Response"> & {
    /**
     * operation.result = ExportToS3Result
     * operation.metadata = ExportToS3Metadata
     *
     * @generated from field: Ydb.Operations.Operation operation = 1;
     */
    operation?: Operation;
};
/**
 * Describes the message Ydb.Export.ExportToS3Response.
 * Use `create(ExportToS3ResponseSchema)` to create a new message.
 */
export declare const ExportToS3ResponseSchema: GenMessage<ExportToS3Response>;
/**
 * Export encryption settings
 * Don't specify this struct for unencrypted exports
 *
 * @generated from message Ydb.Export.EncryptionSettings
 */
export type EncryptionSettings = Message<"Ydb.Export.EncryptionSettings"> & {
    /**
     * Algorithm for export encryption.
     * Not required in case of import/list operation.
     * Currently the following algorithms are supported:
     *  AES-128-GCM
     *  AES-256-GCM
     *  ChaCha20-Poly1305
     *
     * @generated from field: string encryption_algorithm = 1;
     */
    encryptionAlgorithm: string;
    /**
     * @generated from oneof Ydb.Export.EncryptionSettings.Key
     */
    Key: {
        /**
         * @generated from field: Ydb.Export.EncryptionSettings.SymmetricKey symmetric_key = 2;
         */
        value: EncryptionSettings_SymmetricKey;
        case: "symmetricKey";
    } | {
        case: undefined;
        value?: undefined;
    };
};
/**
 * Describes the message Ydb.Export.EncryptionSettings.
 * Use `create(EncryptionSettingsSchema)` to create a new message.
 */
export declare const EncryptionSettingsSchema: GenMessage<EncryptionSettings>;
/**
 * @generated from message Ydb.Export.EncryptionSettings.SymmetricKey
 */
export type EncryptionSettings_SymmetricKey = Message<"Ydb.Export.EncryptionSettings.SymmetricKey"> & {
    /**
     * This key will be used for data encryption
     *
     * @generated from field: bytes key = 1;
     */
    key: Uint8Array;
};
/**
 * Describes the message Ydb.Export.EncryptionSettings.SymmetricKey.
 * Use `create(EncryptionSettings_SymmetricKeySchema)` to create a new message.
 */
export declare const EncryptionSettings_SymmetricKeySchema: GenMessage<EncryptionSettings_SymmetricKey>;
/**
 * / File system (FS)
 *
 * @generated from message Ydb.Export.ExportToFsSettings
 */
export type ExportToFsSettings = Message<"Ydb.Export.ExportToFsSettings"> & {
    /**
     * Base path on FS where to write all export items
     * In the case of NFS, one of the directories in the path must be mounted
     * Must be an absolute path
     * Example: /mnt/exports
     * SchemaMapping file with the list of objects is written to this path
     *
     * @generated from field: string base_path = 1;
     */
    basePath: string;
    /**
     * List of items to export
     *
     * @generated from field: repeated Ydb.Export.ExportToFsSettings.Item items = 2;
     */
    items: ExportToFsSettings_Item[];
    /**
     * Optional description
     *
     * @generated from field: string description = 3;
     */
    description: string;
    /**
     * Number of retries for failed operations
     *
     * @generated from field: uint32 number_of_retries = 4;
     */
    numberOfRetries: number;
    /**
     * Codec used to compress data. Codecs are available:
     * - zstd.
     * - zstd-N, where N is compression level, e.g. zstd-3.
     *
     * @generated from field: string compression = 5;
     */
    compression: string;
    /**
     * Settings for data encryption.
     * If encryption_settings field is not specified,
     * the resulting data will not be encrypted.
     *
     * @generated from field: Ydb.Export.EncryptionSettings encryption_settings = 6;
     */
    encryptionSettings?: EncryptionSettings;
    /**
     * Defaults to database root if not provided.
     * All object names are calculated and written relative to this path.
     *
     * @generated from field: string source_path = 7;
     */
    sourcePath: string;
    /**
     * Patterns (PCRE) for paths excluded from export operation.
     * - Patterns are matched against the object path relative to the export's source_path.
     * - Object is excluded from export operation if it matches any of the specified exclude regexps.
     *
     * @generated from field: repeated string exclude_regexps = 8;
     */
    excludeRegexps: string[];
};
/**
 * Describes the message Ydb.Export.ExportToFsSettings.
 * Use `create(ExportToFsSettingsSchema)` to create a new message.
 */
export declare const ExportToFsSettingsSchema: GenMessage<ExportToFsSettings>;
/**
 * @generated from message Ydb.Export.ExportToFsSettings.Item
 */
export type ExportToFsSettings_Item = Message<"Ydb.Export.ExportToFsSettings.Item"> & {
    /**
     * Database path to a table/directory to be exported
     *
     * @generated from field: string source_path = 1;
     */
    sourcePath: string;
    /**
     * Tables are exported to one or more files in FS.
     * The path begins with 'destination_path'.
     * If not specified, actual FS path is the default `base_path` concatenated with:
     * The object path relative to the global `source_path` for a non-encrypted export
     * The anonymized path for an encrypted export
     *
     * @generated from field: string destination_path = 2;
     */
    destinationPath: string;
};
/**
 * Describes the message Ydb.Export.ExportToFsSettings.Item.
 * Use `create(ExportToFsSettings_ItemSchema)` to create a new message.
 */
export declare const ExportToFsSettings_ItemSchema: GenMessage<ExportToFsSettings_Item>;
/**
 * @generated from message Ydb.Export.ExportToFsResult
 */
export type ExportToFsResult = Message<"Ydb.Export.ExportToFsResult"> & {};
/**
 * Describes the message Ydb.Export.ExportToFsResult.
 * Use `create(ExportToFsResultSchema)` to create a new message.
 */
export declare const ExportToFsResultSchema: GenMessage<ExportToFsResult>;
/**
 * @generated from message Ydb.Export.ExportToFsMetadata
 */
export type ExportToFsMetadata = Message<"Ydb.Export.ExportToFsMetadata"> & {
    /**
     * @generated from field: Ydb.Export.ExportToFsSettings settings = 1;
     */
    settings?: ExportToFsSettings;
    /**
     * @generated from field: Ydb.Export.ExportProgress.Progress progress = 2;
     */
    progress: ExportProgress_Progress;
    /**
     * @generated from field: repeated Ydb.Export.ExportItemProgress items_progress = 3;
     */
    itemsProgress: ExportItemProgress[];
};
/**
 * Describes the message Ydb.Export.ExportToFsMetadata.
 * Use `create(ExportToFsMetadataSchema)` to create a new message.
 */
export declare const ExportToFsMetadataSchema: GenMessage<ExportToFsMetadata>;
/**
 * @generated from message Ydb.Export.ExportToFsRequest
 */
export type ExportToFsRequest = Message<"Ydb.Export.ExportToFsRequest"> & {
    /**
     * @generated from field: Ydb.Operations.OperationParams operation_params = 1;
     */
    operationParams?: OperationParams;
    /**
     * @generated from field: Ydb.Export.ExportToFsSettings settings = 2;
     */
    settings?: ExportToFsSettings;
};
/**
 * Describes the message Ydb.Export.ExportToFsRequest.
 * Use `create(ExportToFsRequestSchema)` to create a new message.
 */
export declare const ExportToFsRequestSchema: GenMessage<ExportToFsRequest>;
/**
 * @generated from message Ydb.Export.ExportToFsResponse
 */
export type ExportToFsResponse = Message<"Ydb.Export.ExportToFsResponse"> & {
    /**
     * operation.result = ExportToFsResult
     * operation.metadata = ExportToFsMetadata
     *
     * @generated from field: Ydb.Operations.Operation operation = 1;
     */
    operation?: Operation;
};
/**
 * Describes the message Ydb.Export.ExportToFsResponse.
 * Use `create(ExportToFsResponseSchema)` to create a new message.
 */
export declare const ExportToFsResponseSchema: GenMessage<ExportToFsResponse>;
//# sourceMappingURL=ydb_export_pb.d.ts.map