/**
 * Interface that adds style overwrites
 */
export interface StyleOverwrites<T> {
  /**
   * Overwrite the style of a property
   */
  styleOverwrites?: T;
  /**
   * If provided, it adds equal top, left, right and bottom padding and margins
   * to the outer top most element of the component
   * @default 0
   */
  gutters?: number | string;
}

/**
 * Interface that adds style overwrites
 * Use this in favor of StyleOverwrites
 */
export interface ApphouseComponent<T> {
  /**
   * Overwrite the style of a property
   */
  styleOverwrites?: T;
  /**
   * If provided, it adds equal top, left, right and bottom paddings and margins
   * to the outer top most element of the component
   * @default 0
   */
  gutters?: number | string;
  /**
   * A string that can be used to identify the component in the DOM
   */
  'data-xray'?: string;
  /**
   * A string that can be used to identify the component styles in the DOM
   */
  'data-style'?: string;
}
