import { Observable } from "rxjs";
import { Campanya } from "../data/campanya";
import { Servicio } from "../data/servicio";
import { ServicioCampo } from "../data/servicio-campo";
import { AgendaHora } from "../data/agenda-hora";
import { SeccionTexto } from "../data/seccion-texto";
import { HttpUtilsService } from "../..//shared/service/http-utils.service";
import { MessageService } from "../..//shared/service/message.service";
import { GeneralUtils } from "../..//shared/service/general-utils.service";
import { Domain } from "../data/domain";
export declare class CampanyaService {
    http: HttpUtilsService;
    message: MessageService;
    utils: GeneralUtils;
    protected baseUrl: string;
    protected baseUrlV2: string;
    private textos;
    private campos;
    constructor(http: HttpUtilsService, message: MessageService, utils: GeneralUtils);
    findCampanya(referencia: string): Observable<Campanya>;
    /** Versión antigua: Recupera solo textos definidos sin especificar servicio.
     *  Si se cargan los textos de esta manera se llamará el método getTexto() y no getTextoServicio(). */
    loadTextos(referencia: string): void;
    /** Versión nueva: Recupera todos los textos definidos, con o sin especificar servicio.
     *  Si se cargan los textos de esta manera se llamará el método getTextoServicio() y no getTexto(). */
    loadTextosConServicios(referencia: string): void;
    private _loadTextos;
    getTexto(seccion: SeccionTexto, servicioIds?: number[]): string;
    findServicios(referencia: string): Observable<Domain[]>;
    findServicio(referencia: string, servicioId: number): Observable<Servicio>;
    findSitios(referencia: string): Observable<Domain[]>;
    findEntidades(referencia: string, servicioId: number, sitioId: number): Observable<Domain[]>;
    findRecursosDeEntidad(referencia: string, entidadId: number, servicioId?: number): Observable<Domain[]>;
    findCamposDeServicio(referencia: string, servicioId: number): Observable<ServicioCampo[]>;
    findPrimerDiaHoraDisponible(referencia: string, servicioId: number, entidadId: number, sitioId: number, recursoId?: number): Observable<AgendaHora>;
    findDiasDisponibles(referencia: string, servicioId: number, entidadId: number, sitioId: number, recursoId?: number): Observable<AgendaHora[]>;
    findHorasDisponibles(dia: string, referencia: string, servicioId: number, entidadId: number, sitioId: number, recursoId?: number): Observable<AgendaHora[]>;
    resendSmsCita(referencia: string, nif: string, telefono: string): Observable<any>;
    getCampos(): ServicioCampo[];
}
