export interface IObjstStatement {
  Sid?: string;
  Effect: 'Allow' | 'Deny';
  Principal: string | Record<string, string | string[]>;
  Action: string | string[];
  Resource: string | string[];
  Condition?: Record<string, Record<string, string | string[]>>;
}

export interface INamedPolicy {
  id: string;
  name: string;
  description: string;
  statements: IObjstStatement[];
  createdAt: number;
  updatedAt: number;
}

export interface IPoliciesData {
  namedPolicies: Record<string, INamedPolicy>;
  bucketPolicyAttachments: Record<string, string[]>;
}
