import type { Logger } from "pino"; import { z } from "zod"; import type { TtdHttpClient } from "./ttd-http-client.js"; import type { RateLimiter } from "@cesteral/shared"; import { type RequestContext } from "@cesteral/shared"; declare const ReportExecutionSchema: z.ZodObject<{ ReportExecutionState: z.ZodOptional; ReportDeliveries: z.ZodOptional>; }, "passthrough", z.ZodTypeAny, z.objectOutputType<{ DownloadURL: z.ZodOptional>; }, z.ZodTypeAny, "passthrough">, z.objectInputType<{ DownloadURL: z.ZodOptional>; }, z.ZodTypeAny, "passthrough">>, "many">>; }, "passthrough", z.ZodTypeAny, z.objectOutputType<{ ReportExecutionState: z.ZodOptional; ReportDeliveries: z.ZodOptional>; }, "passthrough", z.ZodTypeAny, z.objectOutputType<{ DownloadURL: z.ZodOptional>; }, z.ZodTypeAny, "passthrough">, z.objectInputType<{ DownloadURL: z.ZodOptional>; }, z.ZodTypeAny, "passthrough">>, "many">>; }, z.ZodTypeAny, "passthrough">, z.objectInputType<{ ReportExecutionState: z.ZodOptional; ReportDeliveries: z.ZodOptional>; }, "passthrough", z.ZodTypeAny, z.objectOutputType<{ DownloadURL: z.ZodOptional>; }, z.ZodTypeAny, "passthrough">, z.objectInputType<{ DownloadURL: z.ZodOptional>; }, z.ZodTypeAny, "passthrough">>, "many">>; }, z.ZodTypeAny, "passthrough">>; export interface TtdReportConfig { ReportScheduleName: string; ReportTemplateId: number; ReportFileFormat: "CSV" | "TSV" | "ExcelPivot"; ReportDateRange: string; ReportFrequency: "Once" | "Daily" | "Weekly" | "Monthly" | "Quarterly"; ScheduleStartDate: string; TimeZone?: string; ReportDateFormat?: string; ReportNumericFormat?: string; IncludeHeaders?: boolean; ReportFilters?: Array<{ Type: string; Value: string; }>; ReportDimensions?: string[]; ReportMetrics?: string[]; AdvertiserFilters?: string[]; [key: string]: unknown; } export declare class TtdReportingService { private readonly rateLimiter; private readonly httpClient; private readonly logger; private readonly pollIntervalMs; private readonly maxPollAttempts; constructor(rateLimiter: RateLimiter, httpClient: TtdHttpClient, logger: Logger, pollIntervalMs?: number, maxPollAttempts?: number); runReport(config: TtdReportConfig, context?: RequestContext): Promise; createReportSchedule(config: TtdReportConfig, context?: RequestContext): Promise<{ reportScheduleId: string; }>; checkReportExecution(reportScheduleId: string, context?: RequestContext): Promise<{ reportScheduleId: string; state: string; execution: z.infer | Record; downloadUrl?: string; }>; listReportSchedules(query: Record, context?: RequestContext): Promise; private getScheduleAdvertiserIds; getReportSchedule(scheduleId: string, context?: RequestContext): Promise; deleteReportSchedule(scheduleId: string, context?: RequestContext): Promise; listReportTemplates(query: Record, context?: RequestContext): Promise; private pollReportExecution; } export {}; //# sourceMappingURL=ttd-reporting-service.d.ts.map