import type { ParsedFeature, Segment, Attribute, Group, FeatureKey, Test, EnvironmentKey, ExistingState, SegmentKey, AttributeKey, DatafileContent, EntityType, SchemaKey, Schema } from "@featurevisor/types"; import { ProjectConfig } from "../config"; import { DatafileOptions, FeatureEnvironmentProperty, FeatureSourcePaths } from "./adapter"; export declare class Datasource { private config; private rootDirectoryPath?; private adapter; constructor(config: ProjectConfig, rootDirectoryPath?: string); getExtension(): string; /** * State */ readState(environment: EnvironmentKey | false): Promise; writeState(environment: EnvironmentKey | false, existingState: ExistingState): Promise; /** * Revision */ readRevision(): Promise; writeRevision(revision: string): Promise; /** * Datafile */ readDatafile(options: DatafileOptions): Promise; writeDatafile(datafileContent: DatafileContent, options: DatafileOptions): Promise; /** * Entity specific methods */ listFeatures(): Promise; featureExists(featureKey: FeatureKey): Promise; readFeature(featureKey: FeatureKey): Promise; writeFeature(featureKey: FeatureKey, feature: ParsedFeature): Promise; deleteFeature(featureKey: FeatureKey): Promise; getFeatureSourcePaths(featureKey: FeatureKey): Promise; getFeaturePropertySourcePath(featureKey: FeatureKey, property: FeatureEnvironmentProperty, environment?: string): Promise; getRequiredFeaturesChain(featureKey: FeatureKey, chain?: Set): Promise>; listSegments(): Promise; segmentExists(segmentKey: SegmentKey): Promise; readSegment(segmentKey: SegmentKey): Promise; writeSegment(segmentKey: SegmentKey, segment: Segment): Promise; deleteSegment(segmentKey: SegmentKey): Promise; listAttributes(): Promise; listFlattenedAttributes(): Promise; attributeExists(attributeKey: AttributeKey): Promise; readAttribute(attributeKey: AttributeKey): Promise; writeAttribute(attributeKey: AttributeKey, attribute: Attribute): Promise; deleteAttribute(attributeKey: AttributeKey): Promise; listGroups(): Promise; groupExists(groupKey: string): Promise; readGroup(groupKey: string): Promise; writeGroup(groupKey: string, group: Group): Promise; deleteGroup(groupKey: string): Promise; listSchemas(): Promise; schemaExists(schemaKey: SchemaKey): Promise; readSchema(schemaKey: SchemaKey): Promise; writeSchema(schemaKey: SchemaKey, schema: Schema): Promise; deleteSchema(schemaKey: SchemaKey): Promise; listTests(): Promise; readTest(testKey: string): Promise; writeTest(testKey: string, test: Test): Promise; deleteTest(testKey: string): Promise; getTestSpecName(testKey: string): string; listHistoryEntries(entityType?: EntityType, entityKey?: string): Promise; readCommit(commitHash: string, entityType?: EntityType, entityKey?: string): Promise; }