import { CdmCollection, CdmCorpusContext, CdmDataPartitionDefinition, CdmDataPartitionPatternDefinition, CdmEntityDeclarationDefinition, CdmFileStatus, cdmIncrementalPartitionType, CdmObject, CdmObjectDefinitionBase, cdmObjectType, CdmTraitCollection, fileStatusCheckOptions, partitionFileStatusCheckType, resolveOptions, VisitCallback } from '../internal';
/**
 * The object model implementation for local entity declaration.
 */
export declare class CdmLocalEntityDeclarationDefinition extends CdmObjectDefinitionBase implements CdmFileStatus, CdmEntityDeclarationDefinition {
    private TAG;
    /**
     * @inheritdoc
     */
    entityName: string;
    /**
     * @inheritdoc
     */
    entityPath: string;
    /**
     * @inheritdoc
     * Note: Use setLastFileModifiedTime() for setting the value.
     */
    lastFileStatusCheckTime: Date;
    /**
     * @inheritdoc
     */
    lastFileModifiedTime: Date;
    /**
     * @inheritdoc
     */
    lastChildFileModifiedTime: Date;
    /**
     * @inheritdoc
     * Gets and sets this entity's virtual location, it's model.json file's location if entity is from a model.json file
     */
    virtualLocation: string;
    private lastFileModifiedOldTime;
    static get objectType(): cdmObjectType;
    readonly dataPartitions: CdmCollection<CdmDataPartitionDefinition>;
    readonly dataPartitionPatterns: CdmCollection<CdmDataPartitionPatternDefinition>;
    readonly incrementalPartitions: CdmCollection<CdmDataPartitionDefinition>;
    readonly incrementalPartitionPatterns: CdmCollection<CdmDataPartitionPatternDefinition>;
    /**
     * Initializes a new instance of the LocalEntityDeclarationImpl.
     * @param ctx The context.
     * @param entityName The entity name.
     */
    constructor(ctx: CdmCorpusContext, entityName: string);
    /**
     * @inheritdoc
     */
    getObjectType(): cdmObjectType;
    /**
     * @inheritdoc
     */
    validate(): boolean;
    /**
     * @inheritdoc
     */
    copy(resOpt?: resolveOptions, host?: CdmObject): CdmLocalEntityDeclarationDefinition;
    /**
     * @inheritdoc
     */
    getName(): string;
    /**
     * @inheritdoc
     */
    visit(pathFrom: string, preChildren: VisitCallback, postChildren: VisitCallback): boolean;
    /**
     * @inheritdoc
     */
    isDerivedFrom(base: string, resOpt?: resolveOptions): boolean;
    /**
     * @inheritdoc
     */
    isVirtual(): boolean;
    /**
     * @inheritdoc
     */
    fileStatusCheckAsync(partitionCheckType?: partitionFileStatusCheckType, incrementalType?: cdmIncrementalPartitionType, fileStatusCheckOptions?: fileStatusCheckOptions): Promise<void>;
    /**
     * @internal
     * Determine if calling FileStatusCheckAsync on the given pattern or the given partition is needed.
     */
    shouldCallFileStatusCheck(incrementalType: cdmIncrementalPartitionType, isPattern: boolean, patternOrPartitionObj: CdmObjectDefinitionBase): boolean;
    /**
     * @inheritdoc
     */
    reportMostRecentTimeAsync(childTime: Date): Promise<void>;
    /**
     * @internal
     * Creates a data partition object using the input, should be called by DataPartitionPattern object
     * This function doesn't check if the data partition exists.
     */
    createDataPartitionFromPattern(filePath: string, exhibitsTraits: CdmTraitCollection, args: Map<string, string[]>, schema: string, modifiedTime: Date, isIncrementalPartition?: boolean, incrementPartitionPatternName?: string): void;
    setLastFileModifiedTime(value: Date): void;
    getlastFileModifiedTime(): Date;
    private setLastFileModifiedOldTime;
    getlastFileModifiedOldTime(): Date;
    resetLastFileModifiedOldTime(): void;
}
