import azure = require('azure-storage'); export interface AzureTableStorageOptions { accountName?: string; sasKey?: string; connectionString?: string; } export interface AzureTableStorageFeatureOptions { table?: string; createTableIfNotExists?: boolean; } export interface AzureTableStorageResponse extends azure.ServiceResponse { } export declare type AzureTableStorageQuery = azure.TableQuery; export interface AzureTableContinuationToken extends azure.TableService.TableContinuationToken { } export interface AzureTableStorageResultList extends azure.TableService.QueryEntitiesResult { } export interface Repository { select(...args: any[]): Repository & AzureTableStorageQuery; top(top: number): Repository & AzureTableStorageQuery; where(condition: string, ...args: any[]): Repository & AzureTableStorageQuery; and(condition: string, ...args: any[]): Repository & AzureTableStorageQuery; or(condition: string, ...args: any[]): Repository & AzureTableStorageQuery; toQueryObject(): Object; findAll(tableQuery?: AzureTableStorageQuery, currentToken?: AzureTableContinuationToken): Promise>; find(rowKey: string, entity: Partial): Promise; create(entity: T, rowKeyValue?: string): Promise; update(rowKey: string, entity: Partial): Promise; delete(rowKey: string, entity: T): Promise; } export declare type ValueType = ((e: any) => string) | string;