import { Construct } from 'constructs';
import * as cdktf from 'cdktf';
export interface AiDocumentProcessorJobConfig extends cdktf.TerraformMetaArguments {
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/ai_document_processor_job#compartment_id AiDocumentProcessorJob#compartment_id}
    */
    readonly compartmentId: string;
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/ai_document_processor_job#display_name AiDocumentProcessorJob#display_name}
    */
    readonly displayName?: string;
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/ai_document_processor_job#id AiDocumentProcessorJob#id}
    *
    * Please be aware that the id field is automatically added to all resources in Terraform providers using a Terraform provider SDK version below 2.
    * If you experience problems setting this value it might not be settable. Please take a look at the provider documentation to ensure it should be settable.
    */
    readonly id?: string;
    /**
    * input_location block
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/ai_document_processor_job#input_location AiDocumentProcessorJob#input_location}
    */
    readonly inputLocation: AiDocumentProcessorJobInputLocation;
    /**
    * output_location block
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/ai_document_processor_job#output_location AiDocumentProcessorJob#output_location}
    */
    readonly outputLocation: AiDocumentProcessorJobOutputLocation;
    /**
    * processor_config block
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/ai_document_processor_job#processor_config AiDocumentProcessorJob#processor_config}
    */
    readonly processorConfig: AiDocumentProcessorJobProcessorConfig;
    /**
    * timeouts block
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/ai_document_processor_job#timeouts AiDocumentProcessorJob#timeouts}
    */
    readonly timeouts?: AiDocumentProcessorJobTimeouts;
}
export interface AiDocumentProcessorJobInputLocationObjectLocations {
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/ai_document_processor_job#bucket AiDocumentProcessorJob#bucket}
    */
    readonly bucket?: string;
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/ai_document_processor_job#namespace AiDocumentProcessorJob#namespace}
    */
    readonly namespace?: string;
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/ai_document_processor_job#object AiDocumentProcessorJob#object}
    */
    readonly object?: string;
}
export declare function aiDocumentProcessorJobInputLocationObjectLocationsToTerraform(struct?: AiDocumentProcessorJobInputLocationObjectLocations | cdktf.IResolvable): any;
export declare function aiDocumentProcessorJobInputLocationObjectLocationsToHclTerraform(struct?: AiDocumentProcessorJobInputLocationObjectLocations | cdktf.IResolvable): any;
export declare class AiDocumentProcessorJobInputLocationObjectLocationsOutputReference extends cdktf.ComplexObject {
    private isEmptyObject;
    private resolvableValue?;
    /**
    * @param terraformResource The parent resource
    * @param terraformAttribute The attribute on the parent resource this class is referencing
    * @param complexObjectIndex the index of this item in the list
    * @param complexObjectIsFromSet whether the list is wrapping a set (will add tolist() to be able to access an item via an index)
    */
    constructor(terraformResource: cdktf.IInterpolatingParent, terraformAttribute: string, complexObjectIndex: number, complexObjectIsFromSet: boolean);
    get internalValue(): AiDocumentProcessorJobInputLocationObjectLocations | cdktf.IResolvable | undefined;
    set internalValue(value: AiDocumentProcessorJobInputLocationObjectLocations | cdktf.IResolvable | undefined);
    private _bucket?;
    get bucket(): string;
    set bucket(value: string);
    resetBucket(): void;
    get bucketInput(): string | undefined;
    private _namespace?;
    get namespace(): string;
    set namespace(value: string);
    resetNamespace(): void;
    get namespaceInput(): string | undefined;
    private _object?;
    get object(): string;
    set object(value: string);
    resetObject(): void;
    get objectInput(): string | undefined;
}
export declare class AiDocumentProcessorJobInputLocationObjectLocationsList extends cdktf.ComplexList {
    protected terraformResource: cdktf.IInterpolatingParent;
    protected terraformAttribute: string;
    protected wrapsSet: boolean;
    internalValue?: AiDocumentProcessorJobInputLocationObjectLocations[] | cdktf.IResolvable;
    /**
    * @param terraformResource The parent resource
    * @param terraformAttribute The attribute on the parent resource this class is referencing
    * @param wrapsSet whether the list is wrapping a set (will add tolist() to be able to access an item via an index)
    */
    constructor(terraformResource: cdktf.IInterpolatingParent, terraformAttribute: string, wrapsSet: boolean);
    /**
    * @param index the index of the item to return
    */
    get(index: number): AiDocumentProcessorJobInputLocationObjectLocationsOutputReference;
}
export interface AiDocumentProcessorJobInputLocation {
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/ai_document_processor_job#data AiDocumentProcessorJob#data}
    */
    readonly data?: string;
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/ai_document_processor_job#source_type AiDocumentProcessorJob#source_type}
    */
    readonly sourceType: string;
    /**
    * object_locations block
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/ai_document_processor_job#object_locations AiDocumentProcessorJob#object_locations}
    */
    readonly objectLocations?: AiDocumentProcessorJobInputLocationObjectLocations[] | cdktf.IResolvable;
}
export declare function aiDocumentProcessorJobInputLocationToTerraform(struct?: AiDocumentProcessorJobInputLocationOutputReference | AiDocumentProcessorJobInputLocation): any;
export declare function aiDocumentProcessorJobInputLocationToHclTerraform(struct?: AiDocumentProcessorJobInputLocationOutputReference | AiDocumentProcessorJobInputLocation): any;
export declare class AiDocumentProcessorJobInputLocationOutputReference extends cdktf.ComplexObject {
    private isEmptyObject;
    /**
    * @param terraformResource The parent resource
    * @param terraformAttribute The attribute on the parent resource this class is referencing
    */
    constructor(terraformResource: cdktf.IInterpolatingParent, terraformAttribute: string);
    get internalValue(): AiDocumentProcessorJobInputLocation | undefined;
    set internalValue(value: AiDocumentProcessorJobInputLocation | undefined);
    private _data?;
    get data(): string;
    set data(value: string);
    resetData(): void;
    get dataInput(): string | undefined;
    private _sourceType?;
    get sourceType(): string;
    set sourceType(value: string);
    get sourceTypeInput(): string | undefined;
    private _objectLocations;
    get objectLocations(): AiDocumentProcessorJobInputLocationObjectLocationsList;
    putObjectLocations(value: AiDocumentProcessorJobInputLocationObjectLocations[] | cdktf.IResolvable): void;
    resetObjectLocations(): void;
    get objectLocationsInput(): cdktf.IResolvable | AiDocumentProcessorJobInputLocationObjectLocations[] | undefined;
}
export interface AiDocumentProcessorJobOutputLocation {
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/ai_document_processor_job#bucket AiDocumentProcessorJob#bucket}
    */
    readonly bucket: string;
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/ai_document_processor_job#namespace AiDocumentProcessorJob#namespace}
    */
    readonly namespace: string;
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/ai_document_processor_job#prefix AiDocumentProcessorJob#prefix}
    */
    readonly prefix: string;
}
export declare function aiDocumentProcessorJobOutputLocationToTerraform(struct?: AiDocumentProcessorJobOutputLocationOutputReference | AiDocumentProcessorJobOutputLocation): any;
export declare function aiDocumentProcessorJobOutputLocationToHclTerraform(struct?: AiDocumentProcessorJobOutputLocationOutputReference | AiDocumentProcessorJobOutputLocation): any;
export declare class AiDocumentProcessorJobOutputLocationOutputReference extends cdktf.ComplexObject {
    private isEmptyObject;
    /**
    * @param terraformResource The parent resource
    * @param terraformAttribute The attribute on the parent resource this class is referencing
    */
    constructor(terraformResource: cdktf.IInterpolatingParent, terraformAttribute: string);
    get internalValue(): AiDocumentProcessorJobOutputLocation | undefined;
    set internalValue(value: AiDocumentProcessorJobOutputLocation | undefined);
    private _bucket?;
    get bucket(): string;
    set bucket(value: string);
    get bucketInput(): string | undefined;
    private _namespace?;
    get namespace(): string;
    set namespace(value: string);
    get namespaceInput(): string | undefined;
    private _prefix?;
    get prefix(): string;
    set prefix(value: string);
    get prefixInput(): string | undefined;
}
export interface AiDocumentProcessorJobProcessorConfigFeatures {
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/ai_document_processor_job#feature_type AiDocumentProcessorJob#feature_type}
    */
    readonly featureType: string;
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/ai_document_processor_job#generate_searchable_pdf AiDocumentProcessorJob#generate_searchable_pdf}
    */
    readonly generateSearchablePdf?: boolean | cdktf.IResolvable;
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/ai_document_processor_job#max_results AiDocumentProcessorJob#max_results}
    */
    readonly maxResults?: number;
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/ai_document_processor_job#model_id AiDocumentProcessorJob#model_id}
    */
    readonly modelId?: string;
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/ai_document_processor_job#tenancy_id AiDocumentProcessorJob#tenancy_id}
    */
    readonly tenancyId?: string;
}
export declare function aiDocumentProcessorJobProcessorConfigFeaturesToTerraform(struct?: AiDocumentProcessorJobProcessorConfigFeatures | cdktf.IResolvable): any;
export declare function aiDocumentProcessorJobProcessorConfigFeaturesToHclTerraform(struct?: AiDocumentProcessorJobProcessorConfigFeatures | cdktf.IResolvable): any;
export declare class AiDocumentProcessorJobProcessorConfigFeaturesOutputReference extends cdktf.ComplexObject {
    private isEmptyObject;
    private resolvableValue?;
    /**
    * @param terraformResource The parent resource
    * @param terraformAttribute The attribute on the parent resource this class is referencing
    * @param complexObjectIndex the index of this item in the list
    * @param complexObjectIsFromSet whether the list is wrapping a set (will add tolist() to be able to access an item via an index)
    */
    constructor(terraformResource: cdktf.IInterpolatingParent, terraformAttribute: string, complexObjectIndex: number, complexObjectIsFromSet: boolean);
    get internalValue(): AiDocumentProcessorJobProcessorConfigFeatures | cdktf.IResolvable | undefined;
    set internalValue(value: AiDocumentProcessorJobProcessorConfigFeatures | cdktf.IResolvable | undefined);
    private _featureType?;
    get featureType(): string;
    set featureType(value: string);
    get featureTypeInput(): string | undefined;
    private _generateSearchablePdf?;
    get generateSearchablePdf(): boolean | cdktf.IResolvable;
    set generateSearchablePdf(value: boolean | cdktf.IResolvable);
    resetGenerateSearchablePdf(): void;
    get generateSearchablePdfInput(): boolean | cdktf.IResolvable | undefined;
    private _maxResults?;
    get maxResults(): number;
    set maxResults(value: number);
    resetMaxResults(): void;
    get maxResultsInput(): number | undefined;
    private _modelId?;
    get modelId(): string;
    set modelId(value: string);
    resetModelId(): void;
    get modelIdInput(): string | undefined;
    private _tenancyId?;
    get tenancyId(): string;
    set tenancyId(value: string);
    resetTenancyId(): void;
    get tenancyIdInput(): string | undefined;
}
export declare class AiDocumentProcessorJobProcessorConfigFeaturesList extends cdktf.ComplexList {
    protected terraformResource: cdktf.IInterpolatingParent;
    protected terraformAttribute: string;
    protected wrapsSet: boolean;
    internalValue?: AiDocumentProcessorJobProcessorConfigFeatures[] | cdktf.IResolvable;
    /**
    * @param terraformResource The parent resource
    * @param terraformAttribute The attribute on the parent resource this class is referencing
    * @param wrapsSet whether the list is wrapping a set (will add tolist() to be able to access an item via an index)
    */
    constructor(terraformResource: cdktf.IInterpolatingParent, terraformAttribute: string, wrapsSet: boolean);
    /**
    * @param index the index of the item to return
    */
    get(index: number): AiDocumentProcessorJobProcessorConfigFeaturesOutputReference;
}
export interface AiDocumentProcessorJobProcessorConfig {
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/ai_document_processor_job#document_type AiDocumentProcessorJob#document_type}
    */
    readonly documentType?: string;
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/ai_document_processor_job#is_zip_output_enabled AiDocumentProcessorJob#is_zip_output_enabled}
    */
    readonly isZipOutputEnabled?: boolean | cdktf.IResolvable;
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/ai_document_processor_job#language AiDocumentProcessorJob#language}
    */
    readonly language?: string;
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/ai_document_processor_job#processor_type AiDocumentProcessorJob#processor_type}
    */
    readonly processorType: string;
    /**
    * features block
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/ai_document_processor_job#features AiDocumentProcessorJob#features}
    */
    readonly features: AiDocumentProcessorJobProcessorConfigFeatures[] | cdktf.IResolvable;
}
export declare function aiDocumentProcessorJobProcessorConfigToTerraform(struct?: AiDocumentProcessorJobProcessorConfigOutputReference | AiDocumentProcessorJobProcessorConfig): any;
export declare function aiDocumentProcessorJobProcessorConfigToHclTerraform(struct?: AiDocumentProcessorJobProcessorConfigOutputReference | AiDocumentProcessorJobProcessorConfig): any;
export declare class AiDocumentProcessorJobProcessorConfigOutputReference extends cdktf.ComplexObject {
    private isEmptyObject;
    /**
    * @param terraformResource The parent resource
    * @param terraformAttribute The attribute on the parent resource this class is referencing
    */
    constructor(terraformResource: cdktf.IInterpolatingParent, terraformAttribute: string);
    get internalValue(): AiDocumentProcessorJobProcessorConfig | undefined;
    set internalValue(value: AiDocumentProcessorJobProcessorConfig | undefined);
    private _documentType?;
    get documentType(): string;
    set documentType(value: string);
    resetDocumentType(): void;
    get documentTypeInput(): string | undefined;
    private _isZipOutputEnabled?;
    get isZipOutputEnabled(): boolean | cdktf.IResolvable;
    set isZipOutputEnabled(value: boolean | cdktf.IResolvable);
    resetIsZipOutputEnabled(): void;
    get isZipOutputEnabledInput(): boolean | cdktf.IResolvable | undefined;
    private _language?;
    get language(): string;
    set language(value: string);
    resetLanguage(): void;
    get languageInput(): string | undefined;
    private _processorType?;
    get processorType(): string;
    set processorType(value: string);
    get processorTypeInput(): string | undefined;
    private _features;
    get features(): AiDocumentProcessorJobProcessorConfigFeaturesList;
    putFeatures(value: AiDocumentProcessorJobProcessorConfigFeatures[] | cdktf.IResolvable): void;
    get featuresInput(): cdktf.IResolvable | AiDocumentProcessorJobProcessorConfigFeatures[] | undefined;
}
export interface AiDocumentProcessorJobTimeouts {
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/ai_document_processor_job#create AiDocumentProcessorJob#create}
    */
    readonly create?: string;
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/ai_document_processor_job#delete AiDocumentProcessorJob#delete}
    */
    readonly delete?: string;
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/ai_document_processor_job#update AiDocumentProcessorJob#update}
    */
    readonly update?: string;
}
export declare function aiDocumentProcessorJobTimeoutsToTerraform(struct?: AiDocumentProcessorJobTimeouts | cdktf.IResolvable): any;
export declare function aiDocumentProcessorJobTimeoutsToHclTerraform(struct?: AiDocumentProcessorJobTimeouts | cdktf.IResolvable): any;
export declare class AiDocumentProcessorJobTimeoutsOutputReference extends cdktf.ComplexObject {
    private isEmptyObject;
    private resolvableValue?;
    /**
    * @param terraformResource The parent resource
    * @param terraformAttribute The attribute on the parent resource this class is referencing
    */
    constructor(terraformResource: cdktf.IInterpolatingParent, terraformAttribute: string);
    get internalValue(): AiDocumentProcessorJobTimeouts | cdktf.IResolvable | undefined;
    set internalValue(value: AiDocumentProcessorJobTimeouts | cdktf.IResolvable | undefined);
    private _create?;
    get create(): string;
    set create(value: string);
    resetCreate(): void;
    get createInput(): string | undefined;
    private _delete?;
    get delete(): string;
    set delete(value: string);
    resetDelete(): void;
    get deleteInput(): string | undefined;
    private _update?;
    get update(): string;
    set update(value: string);
    resetUpdate(): void;
    get updateInput(): string | undefined;
}
/**
* Represents a {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/ai_document_processor_job oci_ai_document_processor_job}
*/
export declare class AiDocumentProcessorJob extends cdktf.TerraformResource {
    static readonly tfResourceType = "oci_ai_document_processor_job";
    /**
    * Generates CDKTF code for importing a AiDocumentProcessorJob resource upon running "cdktf plan <stack-name>"
    * @param scope The scope in which to define this construct
    * @param importToId The construct id used in the generated config for the AiDocumentProcessorJob to import
    * @param importFromId The id of the existing AiDocumentProcessorJob that should be imported. Refer to the {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/ai_document_processor_job#import import section} in the documentation of this resource for the id to use
    * @param provider? Optional instance of the provider where the AiDocumentProcessorJob to import is found
    */
    static generateConfigForImport(scope: Construct, importToId: string, importFromId: string, provider?: cdktf.TerraformProvider): cdktf.ImportableResource;
    /**
    * Create a new {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/ai_document_processor_job oci_ai_document_processor_job} Resource
    *
    * @param scope The scope in which to define this construct
    * @param id The scoped construct ID. Must be unique amongst siblings in the same scope
    * @param options AiDocumentProcessorJobConfig
    */
    constructor(scope: Construct, id: string, config: AiDocumentProcessorJobConfig);
    private _compartmentId?;
    get compartmentId(): string;
    set compartmentId(value: string);
    get compartmentIdInput(): string | undefined;
    private _displayName?;
    get displayName(): string;
    set displayName(value: string);
    resetDisplayName(): void;
    get displayNameInput(): string | undefined;
    private _id?;
    get id(): string;
    set id(value: string);
    resetId(): void;
    get idInput(): string | undefined;
    get lifecycleDetails(): string;
    get percentComplete(): number;
    get state(): string;
    get timeAccepted(): string;
    get timeFinished(): string;
    get timeStarted(): string;
    private _inputLocation;
    get inputLocation(): AiDocumentProcessorJobInputLocationOutputReference;
    putInputLocation(value: AiDocumentProcessorJobInputLocation): void;
    get inputLocationInput(): AiDocumentProcessorJobInputLocation | undefined;
    private _outputLocation;
    get outputLocation(): AiDocumentProcessorJobOutputLocationOutputReference;
    putOutputLocation(value: AiDocumentProcessorJobOutputLocation): void;
    get outputLocationInput(): AiDocumentProcessorJobOutputLocation | undefined;
    private _processorConfig;
    get processorConfig(): AiDocumentProcessorJobProcessorConfigOutputReference;
    putProcessorConfig(value: AiDocumentProcessorJobProcessorConfig): void;
    get processorConfigInput(): AiDocumentProcessorJobProcessorConfig | undefined;
    private _timeouts;
    get timeouts(): AiDocumentProcessorJobTimeoutsOutputReference;
    putTimeouts(value: AiDocumentProcessorJobTimeouts): void;
    resetTimeouts(): void;
    get timeoutsInput(): cdktf.IResolvable | AiDocumentProcessorJobTimeouts | undefined;
    protected synthesizeAttributes(): {
        [name: string]: any;
    };
    protected synthesizeHclAttributes(): {
        [name: string]: any;
    };
}
