import { Style } from './Style';
import { PaletteType } from './palette.interface';
import { StyleType } from './style.interface';
import { TokenType } from './token.interface';

/**
 * Interface expected when importing a file
 */
export interface ThemeSettings {
  id: string;
  title: string;
  palette: Record<string, PaletteType>;
  tokens: Record<string, TokenType>;
  styles: Record<string, StyleType>;
}

/**
 * Interface for when a snippet is attempted to be saved into a theme
 */
export interface SavedSnippetResponse {
  /**
   * If true, theme was saved successfully, if false the theme was not saved
   */
  saved: boolean;
  /**
   * if defined, this is the theme that will be overwritten if saved
   */
  currentStyle: undefined | Style;
}
