export interface AdminConfigModel {
  solution: {
    value: string;
    whitespace: string;
    special_chars: string;
    case: string;
    clean: string;
  };
  puzzle: {
    first: string;
    next: string | null;
    last: string;
    end: string;
    seed: string;
    extra_days: number[];
    skip_empty: boolean;
  };
  calendar: {
    config_file: string;
    background: string;
    favicon: string;
  };
  image: {
    size: number;
    border: number;
  };
  fonts: { file: string; size: number }[];
  redis: {
    cache_ttl: number;
    host: string;
    port: number;
    db: number;
    protocol_version: number;
  };
  webdav: {
    url: string;
    config_file: string;
  };
}

export interface SiteConfigModel {
  title: string;
  subtitle: string;
  content: string;
  footer: string;
}

export interface DoorSaved {
  day: number;
  x1: number;
  y1: number;
  x2: number;
  y2: number;
}

export interface ImageData {
  width: number;
  height: number;
  aspect_ratio: number;
  data_url: string;
}

export interface Credentials {
  username: string;
  password: string;
}
