import { ReportViewQueryDto } from '../dtos/report.view.query.dto'; import { ReportViewService } from '../services/report.view.service'; export declare class ReportViewController { private readonly service; constructor(service: ReportViewService); list(): Promise<{ views: any[]; }>; describe(name: string): Promise<{ example_queries: { q: string; dsl: import("..").ReportViewDsl; }[]; suggested_visualizations: unknown[]; grammar: { readonly operators: readonly [{ readonly op: "eq"; readonly value: "scalar"; }, { readonly op: "neq"; readonly value: "scalar"; }, { readonly op: "in"; readonly value: "array"; }, { readonly op: "not_in"; readonly value: "array"; }, { readonly op: "gt"; readonly value: "scalar"; }, { readonly op: "gte"; readonly value: "scalar"; }, { readonly op: "lt"; readonly value: "scalar"; }, { readonly op: "lte"; readonly value: "scalar"; }, { readonly op: "between"; readonly value: "[from, to]"; }, { readonly op: "contains"; readonly value: "bare string — wildcards escaped, compiled as ILIKE %value%. Do not send % or SQL LIKE syntax."; }, { readonly op: "is_null"; readonly value: "none"; }, { readonly op: "not_null"; readonly value: "none"; }]; readonly aggregates: readonly ["count", "count_distinct", "sum", "avg", "min", "max"]; readonly buckets: readonly ["day", "week", "month", "quarter", "year"]; readonly sort_dirs: readonly ["asc", "desc"]; readonly relative_dates: { readonly tokens: readonly ["@today", "@today-Nd", "@today+Nd", "@today-Nw", "@today+Nw", "@today-Nm", "@today+Nm", "@today-Ny", "@today+Ny", "@month_start", "@quarter_start", "@fy_start"]; readonly example: "@today-30d"; readonly timezone: "Asia/Kolkata"; readonly fy_anchor: "04-01"; readonly note: "Resolved server-side to an ISO calendar date in Asia/Kolkata. @fy_start is 1 April (Indian FY); in January–March that is last April. Do not compute today or period boundaries in the client."; }; readonly caller: { readonly tokens: readonly ["@me"]; readonly note: "Resolved server-side to the caller: user id on id-type columns, email on string columns. Incompatible columns return value_type_mismatch."; }; readonly rails: { readonly tenancy: "injected"; readonly limit_cap: 500; readonly group_by_cap: 3; readonly offset_cap: 10000; readonly statement_timeout_ms: 2000; }; readonly join: { readonly max: 1; readonly cardinality: "many_to_one"; readonly columns: "."; readonly semantics: "LEFT JOIN; unmatched rows yield nulls for .*"; readonly note: "Name a catalog-declared relationship from view_describe. Do not send ON conditions."; }; }; columns: { name: string; title: string; description: string; type: string; format: Record; enum_map: Record; filterable: boolean; groupable: boolean; aggregatable: string[]; bucketable: boolean; }[]; relationships: any[]; live?: boolean; freshness?: string; name: string; title: string; description: string; grain: string; domain: string; refreshed_at: string | Date; }>; query(name: string, body: ReportViewQueryDto): Promise<{ view: { live?: boolean; name: string; grain: string; }; live?: boolean; freshness?: string; columns: any; rows: Record[]; row_count: number; truncated: boolean; refreshed_at: string | Date; }>; private assertName; }