import { Model } from './model'; import { Database } from './database'; export declare namespace ICollection { interface Index { key?: any; options?: IndexOptions; } interface IndexOptions { expireAfterSeconds?: number; partialFilterExpression?: any; unique?: boolean; } interface JsonSchemaProperty { additionalProperties?: boolean; default?: any; format?: string; items?: JsonSchemaProperty; properties?: JsonSchemaProperty; required?: string[]; type?: string; } interface Permissions { create?: { [key: string]: string[]; }; delete?: { [key: string]: boolean; }; find?: { [key: string]: any; }; populate?: PopulatePermissions[]; read?: { [key: string]: string[]; }; roles?: RolePermissions[]; update?: { [key: string]: string[]; }; } interface PopulatePermissions { path?: string; populate?: PopulatePermissions; } interface RolePermissions { name?: string; query?: any; } } export declare class Collection extends Model { database: Database; databaseId: string; indexes: ICollection.Index; jsonSchema: ICollection.JsonSchemaProperty; name: string; namespaceId: string; permissions: ICollection.Permissions; constructor(params?: Partial); }