import * as core from "@terrascript/core";
export interface DataCatalogConfigArgs extends core.SchemaArgs {
    catalog?: string | core.StringOut;
    database?: string | core.StringOut;
    tableName?: string | core.StringOut;
}
export declare class DataCatalogConfig extends core.Schema<DataCatalogConfigArgs> {
    catalog?: string | core.StringOut;
    database?: string | core.StringOut;
    tableName?: string | core.StringOut;
}
export interface S3StorageConfigArgs extends core.SchemaArgs {
    kmsKeyId?: string | core.StringOut;
    s3Uri: string | core.StringOut;
}
export declare class S3StorageConfig extends core.Schema<S3StorageConfigArgs> {
    kmsKeyId?: string | core.StringOut;
    s3Uri: string | core.StringOut;
}
export interface OfflineStoreConfigArgs extends core.SchemaArgs {
    dataCatalogConfig?: DataCatalogConfig;
    disableGlueTableCreation?: boolean | core.BooleanOut;
    s3StorageConfig: S3StorageConfig;
}
export declare class OfflineStoreConfig extends core.Schema<OfflineStoreConfigArgs> {
    dataCatalogConfig?: DataCatalogConfig;
    disableGlueTableCreation?: boolean | core.BooleanOut;
    s3StorageConfig: S3StorageConfig;
}
export interface SecurityConfigArgs extends core.SchemaArgs {
    kmsKeyId?: string | core.StringOut;
}
export declare class SecurityConfig extends core.Schema<SecurityConfigArgs> {
    kmsKeyId?: string | core.StringOut;
}
export interface OnlineStoreConfigArgs extends core.SchemaArgs {
    enableOnlineStore?: boolean | core.BooleanOut;
    securityConfig?: SecurityConfig;
}
export declare class OnlineStoreConfig extends core.Schema<OnlineStoreConfigArgs> {
    enableOnlineStore?: boolean | core.BooleanOut;
    securityConfig?: SecurityConfig;
}
export interface FeatureDefinitionArgs extends core.SchemaArgs {
    featureName?: string | core.StringOut;
    featureType?: string | core.StringOut;
}
export declare class FeatureDefinition extends core.Schema<FeatureDefinitionArgs> {
    featureName?: string | core.StringOut;
    featureType?: string | core.StringOut;
}
export interface FeatureGroupArgs extends core.ResourceArgs {
    description?: string | core.StringOut;
    eventTimeFeatureName: string | core.StringOut;
    featureDefinition: core.Array<FeatureDefinition> | core.ArrayOut<FeatureDefinition>;
    featureGroupName: string | core.StringOut;
    offlineStoreConfig?: OfflineStoreConfig;
    onlineStoreConfig?: OnlineStoreConfig;
    recordIdentifierFeatureName: string | core.StringOut;
    roleArn: string | core.StringOut;
    tags?: core.Map<string, string> | core.MapOut<core.StringOut>;
    tagsAll?: core.Map<string, string> | core.MapOut<core.StringOut>;
}
export declare class FeatureGroup extends core.Resource<FeatureGroupArgs> {
    arn: string | core.StringOut;
    description?: string | core.StringOut;
    eventTimeFeatureName: string | core.StringOut;
    featureDefinition: core.Array<FeatureDefinition> | core.ArrayOut<FeatureDefinition>;
    featureGroupName: string | core.StringOut;
    id: string | core.StringOut;
    offlineStoreConfig?: OfflineStoreConfig;
    onlineStoreConfig?: OnlineStoreConfig;
    recordIdentifierFeatureName: string | core.StringOut;
    roleArn: string | core.StringOut;
    tags?: core.Map<string, string> | core.MapOut<core.StringOut>;
    tagsAll?: core.Map<string, string> | core.MapOut<core.StringOut>;
    constructor(name: string, args?: FeatureGroupArgs);
    getNamespace(): string;
}
//# sourceMappingURL=feature_group.d.ts.map