import * as Models from "../generated/artifacts/models" ; import Context from "../generated/Context" ; /** MODELS FOR SERVICE */ interface IServiceAdditionalProperties { accountName : string ; } export type ServicePropertiesModel = Models . TableServiceProperties & IServiceAdditionalProperties ; export interface IOdataAnnotations { odatametadata : string ; odatatype : string ; odataid : string ; odataeditLink : string ; } export interface IOdataAnnotationsOptional { odatametadata ? : string ; odatatype ? : string ; odataid ? : string ; odataeditLink ? : string ; } interface ITable { tableAcl ? : Models . SignedIdentifier [ ] ; account : string ; table : string ; } export type Table = ITable & IOdataAnnotationsOptional ; export type TableACL = Models . SignedIdentifier [ ] ; export interface IEntity { PartitionKey : string ; RowKey : string ; eTag : string ; lastModifiedTime : Date ; properties : { [ propertyName ] : string | number | boolean | null ; } ; } export type Entity = IEntity & IOdataAnnotationsOptional ; export default interface ITableMetadataStore { createTable ( context , tableModel ) : Promise < void > ; queryTable ( context , account , queryOptions , nextTable ? ) : Promise < [ Table [ ] , string | undefined ] > ; deleteTable ( context , table , account ) : Promise < void > ; setTableACL ( account , table , context , queueACL ? ) : Promise < void > ; getTable ( account , table , context ) : Promise < Table > ; queryTableEntities ( context , account , table , queryOptions , nextPartitionKey ? , nextRowKey ? ) : Promise < [ Entity [ ] , string | undefined , string | undefined ] > ; queryTableEntitiesWithPartitionAndRowKey ( context , table , account , partitionKey , rowKey ) : Promise < Entity | undefined > ; insertOrUpdateTableEntity ( context , table , account , entity , ifMatch ? ) : Promise < Entity > ; insertOrMergeTableEntity ( context , table , account , entity , ifMatch ? ) : Promise < Entity > ; deleteTableEntity ( context , table , account , partitionKey , rowKey , etag ) : Promise < void > ; insertTableEntity ( context , table , account , entity ) : Promise < Entity > ; getTableAccessPolicy ( context , table , options ) : Promise < Models . TableGetAccessPolicyResponse > ; setTableAccessPolicy ( context , table , options ) : Promise < Models . TableSetAccessPolicyResponse > ; init ( ) : void ; close ( ) : void ; getServiceProperties ( context , account ) : Promise < ServicePropertiesModel | undefined > ; setServiceProperties ( context , serviceProperties ) : Promise < ServicePropertiesModel > ; }